1.二进制补码

1.二进制补码

DSP的数通常以二进制补码表示。二进制数的最高位为符号位,表示数的正负,0表示数为正,1则表示为负,其余的位表示数值的大小。求取负数补码的方法是其原码的符号位不变,其他位取反加1。而正数的补码与原码一样。

例1-1 x=-24,y=24,写出它们的8位二进制补码。

x=-24 [x]=1001 1000B,[x]=1110 1000B=0E8H

y=24 [y]=[y]=0001 1000B=18H

可以看出,就整数而言,8位二进制补码表示数的范围是-128~+127,16位二进制补码表示数的范围是-32768~+322767。

为了提高准确度,通常需要用多个字节表示一个数。如8位扩展到16位,16位扩展到32位,这就存在符号扩展问题。对于正数来说,前面全部加0即可。负数符号扩展,前面则需要全部加1。

例1-2 x=-24,y=24,写出它们的16位二进制补码。

x=-24,[x]=1000 0000 0001 1000B,

[x]=1111 1111 1110 1000B=0FFE8H

y=24,[y]=[y]=0000 0000 0001 1000B=18H

再例如,-1的8位、16位和32位二进制补码的16进制表示分别为0FFH、0FFFFH和0FFFF FFFFH。