I was looking into bitwise operators in rust, and I found that
println!("{:X}", 1 << 4);
prints out 10, but 2^4 should equal 16.
Further experimentation, using powers:
let base: i32 = 2;
for i in 1..=5 {
print!("{:X} ", base.pow(i));
}
will print out
2 4 8 10 20
when it should print out 2 4 8 16 32
Just wondering if you can point me out to anything in the Rust docs that highlights why binary in Rust works like this? And what can I use to do 2^4 = 16?
{:X}
print numbers in hexadecimal.
So it prints 10 in base 16 which is 16, the expected answer.
To get the expected result change {:X}
to {}
.