关于二进制取反
来源:2-12 位运算符
精慕门9331367
2020-06-01 20:26:55
如果我本身有个数128,二进制为10000000,现在我对这个二进制取反,结果为01111111,最终输出的答案是127。但这个跟课上讲的冲突了,课上说取反会变成负数,但我这里这个情况并没有发生。
1回答
同学,你好。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数。二进制的位数其实由它表示的数据类型决定,每一种数据类型所占的位宽是不一样的。如int型是32位,也就是说它最大可以占32个2进制位,即并不一定是固定的8位二进制。
在对128取反时,第9位是0。如0000 1000 0000取反后是1111 0111 1111高位是1,需要再取反加1,即-129
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
相似问题