【摘要】: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。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关Piccolo系列DSP控制器原理与开发的文章