定点数的三种表示方法
0赞
发表于 9/18/2017 7:52:49 PM
阅读(2504)
定点数的三种表示方法
定点数的三种表示方法:原码,反码,补码。
数x的定点数为:x=a_(B-1) ∆a_(B-2)……a_1 a_0(∆为小数点,a_(B-1) 为符号位,用0,1来表示正负)
十进制数D表示为:
原码表示法
如果已知绝对值小于1的十进制数,如何转换成B比特的二进制数原码?
用dec2bin即可。不过对绝对值小于1的十进制数据用dec2bin转换之前需要先将十进制小数乘以一个比例因子2^(B-1),并进行四舍五入操作取整,转换函数的表达式为:
Dec2bin(round(abs(D)*2^(B-1))+(2^(B-1))*(D<0),B)
Ps:十进制转换成二进制数存在量化误差。
反码表示法
正数的反码与原码相同,负数的反码为原码除了符号位的所有位取反,即得到负数的反码。如:十进制数-0.75的二进制原码表示为(x)2=1∆110,其反码为1∆001
补码表示法
正数的补码,反码及原码完全相同。负数的补码等于反码在最低位加1.如:十进制数-0.75的二进制原码表示为(x)2=1∆110,其反码为1∆001,其补码为1∆010
同理dec2bin也可将十进制数转换成补码形式的二进制数,表达式为:
Dec2bin(round(D*2^(B-1))+2^B*(D<0),B)