C语言问题,为什么3 ~位取反运算 后值是-4? 再讲下负数的机器码吧😢谢谢
C语言问题,为什么3 ~位取反运算 后值是-4? 再讲下负数的机器码吧😢谢谢
日期:2018-04-11 23:13:11 人气:2
机器存储的是补码方式存取,3的话,按照8位来算就是0000 0011,取反后是1111 1100
而第一位为1表示负数,负数补码表示法为原位取反,末位加1(符号位不变),1111 1100这是补码,按照负数表示法逆向表示为:
先减一,为1111 1011,再取反为1000 0100(首位1为负数的符号位),转换为十进制后为-4