C语言求大神!!!~按位取反,0取反为什么是-1不是1?
C语言求大神!!!~按位取反,0取反为什么是-1不是1?
日期:2017-12-15 15:31:56 人气:1
i为int类型 通常占4个字节
0的原码:0000 0000 0000 0000 0000 0000 0000 0000
取反: 1111 1111 1111 1111 1111 1111 1111 1111
最高位是1所以是负数,求其原始数据,方法是
再次取反加1(符号位不变)
取反: 1000 0000 0000 0000 0000 0000 0000 0000
加1 1000 0000 0000 0000 0000 0