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

日期:2021-07-05 14:03:36 人气:1

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

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