反码:
正数:正数的反码与原码相同。
负数:负数的反码,符号位为“1”,数值部分按位取反。
补码:
正数的补码与其原码相同;
负数的补码是在其反码的末位加1。
(1)8位二进制原码的表示范围:-127~+127
(2)8位二进制反码的表示范围:-127~+127
(3)若字长为8位,则补码所表示的范围为-128~+127;进行补码运算时,应注意所得结果不应超过补码所能表示数的范围。
(4)-2^n是个特殊数(n为x数值位的长度):
它补码的求法应按照公式进行运算:
如: -128 “[-2^7]补”=(2^8)+(-2^7)=10000000
在纯整数的“原码”表示中,“[-2^n]原”是不能表示的;而在“补码”表示中,在模为2^(n+1)的条件下,纯整数的补码最小可以表示到-2^n 。这时在[-2^n]中,符号位的1既表示符号“-”,也表示数值2^n 。
~按位取反
1010(10)在32位计算机中的存储实际上是00001010,取反后是11110101,在计算机中首位是0表示正数,是1表示负数,即11110101表示的是一个负数,即要由11110101求这个负数,即求补码的逆,步骤:先减1得11110100,再取反,取反时符号位不变,得10001011,即-11。用4位表示的话可以填0101,或者是8位的11110101