为什麼2的按位取反是-3

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:39:42
如题谢谢 ..

快忘了,好像是这样的。2的二进制是10,而在32位计算机中实际按
0000 0000 0000 0010
存储。所以是对2取反就是
1111 1111 1111 1101
而我们知道在高位为1时表示该数是负数。把负数二进制转为十进制步骤就是将其二进制减一,再取反(注意符号位不变任为1)
1111 1111 1111 1101 取反就是 1000 0000 0000 0011
二进制11的十进制就是3,加上高位为1是个负数所以是-3

好像应该是这样,忘得差不多了

快忘了,好像是这样的。2的二进制是10,而在32位计算机中实际按
0000 0000 0000 0010
存储。所以是对2取反就是
1111 1111 1111 1101
而我们知道在高位为1时表示该数是负数。把负数二进制转为十进制步骤就是将其二进制减一,再取反(注意符号位不变任为1)
1111 1111 1111 1101 取反就是 1000 0000 0000 0011
二进制11的十进制就是3,加上高位为1是个负数所以是-3

好像应该是这样,忘得差不多了。

0 0 0 0 0 0 1 0 2
1 1 1 1 1 1 0 1 -3
1 1 1 1 1 1 1 0 -2
1 1 1 1 1 1 1 1 -1
0 0 0 0 0 0 0 0 0

00000010
11111101
这都是补码
转成原码
看看是几就行了

倒数第三行应该是:
1111 1111 1111 1100 取反就是 1000 0000 0000 0011