您的位置首页 >综合知识 >

定点数设计(定点数)

导读 您好,今天芳芳来为大家解答以上的问题。定点数设计,定点数相信很多小伙伴还不知道,现在让我们一起来看看吧!1、[编辑本段]定点数 【dì

您好,今天芳芳来为大家解答以上的问题。定点数设计,定点数相信很多小伙伴还不知道,现在让我们一起来看看吧!

1、[编辑本段]定点数 【dìng diǎn shù 】 计算机中采用的一种数的表示方法。

2、参与运算的数的小数点位置固定不变。

3、[编辑本段]1 定点数的表示 [编辑本段]1.1 无符号数的表示 指整个机器字长的全部二进制位均表示数值位,相当于数的绝对值。

4、若机器字长为n+1为,则数值表示为: X=X0X1X2...Xn 其中Xi={0,1}, 0<=i<=n 即X0*2^n + X1*2^(n-1) + X2*2^(n-2) + ... + Xn-1*2 + Xn 数值范围是 0≤X≤2^(n+1) - 1 例如:1111表示15。

5、[编辑本段]1.2 带符号数的表示 最高位被用来表示符号位,而不再表示数值位。

6、[编辑本段](1) 定点整数 小数点位固定在最后一位之后称为定点整数。

7、若机器字长为n+1为,数值表示为: X=X0X1X2...Xn,其中Xi={0,1},0≤i≤n 即(-1)^X0 * (X1*2^(n-1) + X2*2^(n-2) + ... + Xn-1*2 + Xn) 数值范围是 -(2^n-1)≤0≤2^n-1 例如:1111表示-7。

8、[编辑本段](2) 定点小数 小数点固定在最高位之后称为定点小数。

9、若机器字长为n+1为,数值表示为: X=X0.X1X2...Xn,其中Xi={0,1},0≤i≤n (这里X0不表示数字,只表示符号,若X0=0,则代表X=0.X1X2...Xn,X0=1,则代表-0.X1X2...Xn)。

10、 即 (-1)^X0 * (X1*2^(-1)) + X2*2^(-2) + ... + Xn-1*2^(-n+1) + Xn*2^(-n) 数值范围是 -(1-2^(-n))≤X≤1-2^(-n) 例如:1111表示-0.875 (定点小数也被用在浮点数的尾数(Mantissa)部分)[编辑本段](3) 原码表示 原码是用机器数的最高一位代表符号,以下给位给出数值绝对值的表示方法。

11、其定义为: 整数: [X]原=X (0≤ x<2^n) [X]原=2^n-X (-2^n

12、 例如:真值X=+1001,[X]原=01001;真值X=-1001,[X]原=10000-(-1001)=11001;真值X=-0.1001,[X]原=1-(-0.1001)=1.1001。

13、 原码的性质: 1. 符号位+数的绝对值。

14、 2. 0有两个编码。

15、 3. 加减运算规则复杂,乘除运算规则简单。

16、 4. 表示简单,易于和真值之间进行转换。

17、 原码的运算: 加法: 先判断符号位,若相同,绝对值相加,结果符号位不变;若不同,绝对值大的数减去绝对值小的数,符号位和绝对值大的数相同。

18、 [X]原=00010,[Y]原=01010,X+Y=00000+1010+0010=01100;[X]原=10010,[Y]原=01010,X+Y=00000+1010-10=01000。

19、 减法: 将减数符号取反,然后将被减数和符号取反的减数相加。

20、 [X]原=10010,[Y]原=01010,X-Y=10010+11010=10000+0010+1010=11100。

21、 乘法(原码一位乘): 是模拟竖式手算的方法。

22、引入一个值为部分积(初值为0)。

23、符号位是被乘数和乘数符号位的异或值。

24、之后检视乘数(符号位以外)从低向高的每一位,若为1,部分积(对齐最高位)加被乘数(符号位以外),并右移一位;若为0,部分积加0,右移一位。

25、 例如:[X]原=11101,[Y]原=01011。

26、X*Y:符号位S=1⊕0=1 则X*Y=110001111。

27、 除法(交替加减法):符号位为被除数和除数符号位异或获得。

28、之后被除数减除数(补码表示),当余数为正时,商“1”,余数左移一位减除数;当余数为负时,商“0”,余数左移一位,加除数。

29、 例如:[X]原 = 0.1001,[Y]补= 0.1011,X/Y: 除法 余数r0<0,商0 商0,r和q左移一位 加y 余数r1>0,商1 商1,r和q左移一位 减y 余数r2>0,商1 商1,r和q左移一位 减y 余数r3<0,商0 商0,r和q左移一位 加y 余数r4>0,商1 X/Y 的商 [Q]原 = 0.1101,余数[R]原 = 0.0001。

30、[编辑本段](4) 补码表示 补码定义为: 整数: [X]补=X (0≤X<2^n) [x]补=2^(n+1)+X (-2^n

31、 补码的性质: 1. 机器数和真值的关系为: [X]补=2*符号位+X 2. [X]补和真值的关系:X=[X]补 - 2*X0=X0.X1X2...Xn - 2*X0=-X0 + 0.X1X2...Xn 3. 0有唯一的编码。

32、 4. 两数补码加法,把符号位和数值位等同处理,结果的符号位与数值位都正确。

33、 5. 补码数的算数移位 把[X]补的符号位和数值位一起右移一位并保持原符号位的值不变,可用来实现除法功能(除以2)。

34、 变形补码,又称模4补码,把普通补码由模2改为模4,其中双符号位00代表正,11代表负,01上溢,10下溢。

35、[编辑本段](5) 反码表示 反码是用机器数的最高位代表符号,数值位是对负数各位取反的表示方法,定义为: 整数: [X]反=X (0≤X<2^n) [X]反=(2^(n+1)-1)+X (-2^n

36、 反码的性质: 0有2个编码。

37、 现在计算机中,较少使用反码。

38、[编辑本段](6) 移码 移码定位为: [X]移=2^n+X (-2^(-n)≤X<2^n) 当真值用补码表示时,由于符号位和数值部分一起编码,与习惯上的表示法不同,因此人们很难从补码的形式上直接判断其真值的大小。

39、 十进制数X=31,对应的二进制数为+11111,则[X]补=011111;十进制数X=-31,对应的二进制数为-11111,则[X]补=100001,看上去好像100001>011111,其实正好相反。

40、如果我们对每个真值加上一个2^n,X=11111加上2^5可得11111+100000=111111;X=-11111加上2^5可得-11111+100000=000001,这样就可以直接通过二进制代码比较大小。

41、 移码的性质: 1. 最高位为符号位。

42、 2. 0有唯一编码。

43、 3. 保持了数据原有的大小顺序。

44、 4. 移码只用于浮点数的阶码部分,故只用于表示整数。

45、[编辑本段]定点数与浮点数的比较 数值的表示范围 :浮点表示法所能表示的数值范围将远远大于定点表示法 。

46、 精度 :对于字长相同的定点数与浮点数来说,浮点数虽然扩大了数的表示范围,但这是以降低精度为代价的,也就是数轴上各点的排列更稀疏了 。

47、 数的运算 :浮点运算要比定点运算复杂 。

48、 溢出处理 :定点运算时,当运算结果超出数的表示范围,就发生溢出;而在浮点运算时,运算结果超出尾数的表示范围却并不一定溢出,只有当阶码也超出所能表示的范围时,才发生溢出。

本文就为大家分享到这里,希望小伙伴们会喜欢。

标签:

免责声明:本文由用户上传,如有侵权请联系删除!