理论教育 了解二进制补码表示法及其数值范围

了解二进制补码表示法及其数值范围

时间:2023-06-15 理论教育 版权反馈
【摘要】:DSP的数通常以二进制补码表示。x=-24 [x]原=1001 1000B,[x]补=1110 1000B=0E8Hy=24 [y]原=[y]补=0001 1000B=18H可以看出,就整数而言,8位二进制补码表示数的范围是-128~+127,16位二进制补码表示数的范围是-32768~+322767。例1-2 x=-24,y=24,写出它们的16位二进制补码。x=-24,[x]原=1000 0000 0001 1000B,[x]补=1111 1111 1110 1000B=0FFE8Hy=24,[y]原=[y]补=0000 0000 0001 1000B=18H再例如,-1的8位、16位和32位二进制补码的16进制表示分别为0FFH、0FFFFH和0FFFF FFFFH。

了解二进制补码表示法及其数值范围

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。(www.daowen.com)

例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。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈