原码、反码、补码
正数的原码、反码、补码都一样,负数则会变化。计算机中有符号数(signed)用补码表示。
1.原码:数的二进制数表现形式(一般为8位)
注意:第一位为标志位(0代表正数、1表示负数)
例:14(原码):0000 1110
-21(原码):1001 0101(负数,标志位为1)
2.反码
原码—>反码:负数标志位不变,其他取反,正数不变。
例:14(反码):0000 1110
-21(反码):1110 1010
3.补码
负数补码=反码+1,整数不变。
例:14(补码):0000 1110
-21(补码):1110 1011
提示:8位二进制数能表示的十进制数的范围为-128到127;
如果数大于128或者小于-127,则会溢出,溢出只能用两个字节(16位二进制数)表示。
计算机内计算方式(加减)
1.加法(全正):直接原码相加
例: 14 0000 1110
+ + = 0010 0011(35)
21 0001 0101
2.减法(全正):将全正减法转换成负数相加
负数相加时,两数的补码相加,得到的为结果的补码,再转换出结果
例: 14 0000 1110
+ + = 1111 1001(-7的补码)
-21 1110 1011