负数的补码是:原码按位取反再加一
逆序求原码:
-1的补码是FFFF=1111 1111 1111 1111
减一:
1111 1111 1111 1110
按位取反(除符号位):
1000 0000 0000 0001
最高位1表示符号位,"0"表示正数"1"表示负数
=========补充
原码是不用求的。原码就是没有修改过的嘛。对于signed int,第一位表示的就是符号位。于是-1就表示为1000 0000 0000 0001,但是在计算机中,signed int 我们用补码表示。即原码除符号位的所有位取反加1,于是-1表示为:1111 1111 1111 1111.
你应该问的是为什么-1表示为:1111 1111 1111 1111。
逆序求原码:
-1的补码是FFFF=1111 1111 1111 1111
减一:
1111 1111 1111 1110
按位取反(除符号位):
1000 0000 0000 0001
最高位1表示符号位,"0"表示正数"1"表示负数
=========补充
原码是不用求的。原码就是没有修改过的嘛。对于signed int,第一位表示的就是符号位。于是-1就表示为1000 0000 0000 0001,但是在计算机中,signed int 我们用补码表示。即原码除符号位的所有位取反加1,于是-1表示为:1111 1111 1111 1111.
你应该问的是为什么-1表示为:1111 1111 1111 1111。
本文解析了-1在计算机中以补码形式表示的过程,包括原码取反加一的步骤,解释了为何-1的补码表现为全1的状态。
928

被折叠的 条评论
为什么被折叠?



