tutu_1583

定点数的三种表示方法

0
阅读(2504)

定点数的三种表示方法

定点数的三种表示方法:原码,反码,补码。

数x的定点数为:x=a_(B-1) ∆a_(B-2)……a_1 a_0(∆为小数点,a_(B-1) 为符号位,用0,1来表示正负)

十进制数D表示为:11111.PNG


原码表示法

如果已知绝对值小于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)