为什么2加4等于10?

-4 binary bitwise-operators exponentiation rust

我正在研究 Rust 中的按位运算符,我发现

println!("{:X}", 1 << 4);
Run Code Online (Sandbox Code Playgroud)

打印出 10,但 2^4 应等于 16。

进一步实验,使用权力:

let base: i32 = 2;
for i in 1..=5 {
    print!("{:X} ", base.pow(i));
}
Run Code Online (Sandbox Code Playgroud)

2 4 8 10 20会在应该打印的时候打印出来 2 4 8 16 32

只是想知道你是否可以向我指出 Rust 文档中强调为什么 Rust 中的二进制文件会这样工作的任何内容?我可以用什么来实现 2^4 = 16 呢?

小智 5

{:X}以十六进制打印数字。
所以它以 16 为基数打印 10,即 16,即预期的答案。

要获得预期结果,请更改{:X}{}.