Rust语言编程实例100题-054

2021-08-17  本文已影响0人  L我是小学生

Rust语言编程实例100题-054

题目:学习使用按位取反!。

普及点计算机知识:计算机并不直接存储二进制原码,而是存储二进制的补码。正数的补码就是原码,比如1,原码0000 0001,补码也为0000 0001。而负数的补码,是“符号位不变,原码取反再加一”(计算机毕竟不是人,需要人为嵌入一套完美的规则。这种存储方式有着严谨的数学证明,感兴趣的同学可以自行上网查找。),比如-1,原码1000 0001,取反1111 1110,加一后1111 1111,1111 1111就是-1的二进制补码。负数输出时,将补码逆向译成原码,原码取反加一得补码,补码减一取反得原码。

程序分析:~0=1; ~1=0

知识点:与 或 非 左移 右移

参考程序代码:

fn main() {
    let a = 10;
    dbg!(!a);
}

程序执行结果:

!a = -11
上一篇 下一篇

猜你喜欢

热点阅读