C语言问题,为什么3 ~位取反运算 后值是-4? 再讲下负数的机器码吧😢谢谢

日期:2018-04-11 23:13:11 人气:2

C语言问题,为什么3 ~位取反运算 后值是-4? 再讲下负数的机器码吧😢谢谢

机器存储的是补码方式存取,3的话,按照8位来算就是0000 0011,取反后是1111 1100 而第一位为1表示负数,负数补码表示法为原位取反,末位加1(符号位不变),1111 1100这是补码,按照负数表示法逆向表示为: 先减一,为1111 1011,再取反为1000 0100(首位1为负数的符号位),转换为十进制后为-4
    A+
热门评论