What is the bitwise NOT operator in Rust?

Looking at the list of bitwise operators in the Rust Book, I don't see a NOT operator (like ~ in C). Is there no NOT operator in Rust?


Solution 1:

The ! operator is implemented for many primitive types and it's equivalent to the ~ operator in C. See this example (playground):

let x = 0b10101010u8;
let y = !x;
println!("x: {:0>8b}", x);
println!("y: {:0>8b}", y);

Outputs:

x: 10101010
y: 01010101

See also:

  • How do you set, clear and toggle a single bit in Rust?