分别写出该机在下列的数据表示形式中所能表示的最小正数、最大正数、最大负数、最小负数(绝对值最大的负数)和浮点规格化最小正数、最大负数在机器中的表示形式和所对应的十进制真值。 (1) 原码表示的定点整数; (2) 补码表示的定点整数;
(3) 阶码与尾数均用原码表示的浮点数; (4) 阶码与尾数均用补码表示的浮点数;
(5) 阶码为移码、尾数用补码表示的浮点数。 解:(1) 原码表示的定点整数 最小正数 最大正数 最大负数 最小负数
(2) 补码表示的定点整数
最小正数 最大正数 最大负数 最小负数 机器数形式 0 000000000000001 0 111111111111111 1 111111111111111 1 000000000000000 十进制真值 1 2-1 -1 -2 1515机器数形式 0 000000000000001 0 111111111111111 1 000000000000001 1 111111111111111 十进制真值 1 2-1 -1 -(2-1) 1515
(3) 阶码与尾数均用原码表示的浮点数;
最小正数 规格化最小正数 最大正数 最大负数 规格化最大负数 最小负数 机器数形式 0 1 1111 0000000001 0 1 1111 1000000000 0 0 1111 1111111111 1 1 1111 0000000001 1 1 1111 1000000000 1 0 1111 1111111111 十进制真值 2-10×2-15 2×2(1-2-2-10-1-15 15)×2 -15-10×2 -2×2-(1-2-10-1-15 15)×2
(4) 阶码与尾数均用补码表示的浮点数; 最小正数 规格化最小正数 最大正数 最大负数 规格化最大负数 最小负数 机器数形式 0 1 0000 0000000001 0 1 0000 1000000000 0 0 1111 1111111111 1 1 0000 1111111111 1 1 0000 0111111111 1 0 1111 0000000000 十进制真值 2-10×2-16 2×2(1-2-2-1-10-1-16 15)×2 -16-10×2-10 -16-(2+2)×215 -1×2
(5) 阶码为移码、尾数用补码表示的浮点数。
最小正数 规格化最小正数 最大正数 最大负数 规格化最大负数 最小负数 机器数形式 0 0 0000 0000000001 0 0 0000 1000000000 0 1 1111 1111111111 1 0 0000 1111111111 1 0 0000 0111111111 1 0 1111 0000000000 十进制真值 2-10×2-16 2×2(1-2-2-1-10-1-16 15)×2 -16-10×2-10 -16-(2+2)×215 -1×2
2.10 设2.9题中的浮点数格式中,阶码与尾数均用补码表示,分别写出下面用十六进制书写的浮点机器数所对应的十进制真值。
(1) FFFFH; (2) C400H; (3) C000H。
---
答:(1) FFFFH=1 11111 1111111111=-210×21=-211
--
(2) C400H=1 10001 0000000000=-1×215=-215
--
(3) C000H=1 10000 0000000000=-1×216=-216
2.11 用十六进制写出下列十进制数的IEEE754标准32位单精度浮点数的机器数的表示形式。
(1) 0.15625 (2) -0.15625 (3) 16 (4) -5 答:
-
(1)(0.15625)10=(0. 00101)2=1.01×23
阶码E=127+(-3)=124=(1111100)2=01111100 机器数形式:0 01111100 01000000000000000000000 十六进制形式:3E200000H
-
(2) (-0.15625)10=(-0. 00101)2=-1.01×23 阶码E=127+(-3)=124=(1111100)2=01111100 机器数形式:1 01111100 01000000000000000000000 十六进制形式:BE200000H
(3) (16)10=(10000)2=-1.0000×24 阶码E=127+4=131=(10000011)2
机器数形式:0 10000011 00000000000000000000000 十六进制形式:41800000H
(4) (-5)10=(-101)2=-1.01×22 阶码E=127+2=129=(10000001)2
机器数形式:1 10000001 01000000000000000000000 十六进制形式:C0A00000H
2.12 用十六进制写出写出IEEE754标准32位单精度浮点数所能表示的最小规格化正数和最大规格化负数的机器数表示形式。
-
答:若1≤E≤254,则 N=(-1)S×2E127×(1.M) ,为规格化数。
最小规格化正数的机器数表示形式:S=0,E=1,M=00000000000000000000000 0 00000001 00000000000000000000000=00800000H
最大规格化负数的机器数表示形式:S=1,E=1,M=00000000000000000000000 1 00000001 00000000000000000000000=80800000H
2.13 写出下列十六进制的IEEE单精度浮点数代码所代表的十进制数值。
(1) 42E48000 (2) 3F880000 (3) 00800000 (4) C7F00000 解:
(1) 42E48000=0 10000101 11001001000000000000000 指数=(10000101)2-127=133-127=6
M=1.11001001000000000000000=1+(1/2+1/4+1/32+1/256) 十进制数值N=[1+(1/2+1/4+1/32+1/256)]×26=114.25 (2) 3F880000=0 01111111 00010000000000000000000 指数=(01111111)2-127=127-127=0
M=1.00010000000000000000000=1+1/16=1.0625 十进制数值N=1.0625×20=1.0625
(3) 00800000=0 00000001 00000000000000000000000 指数=(00000001)2-127=1-127=-126 M=1.00000000000000000000000
-
十进制数值N=1×2126
(4) C7F00000=1 10001111 11100000000000000000000 指数=(10001111)2-127=143-127=16
M=1. 11100000000000000000000=1+(1/2+1/4+1/8)=1.875
161514131316
十进制数值N=-(2+2+2+2)=-15×2=-122880=-1.875×2
2.14 设有两个正浮点数:N1?S1?21,N2?S2?22 (1) 若e1>e2,是否有N1>N2
(2) 若S1、S2均为规格化数,上述结论是否正确? 答:(1)不一定
(2)正确
2.15 设一个六位二进制小数x=0.a1a2a3a4a5a6,x≥0,请回答:
ee1,a1a2a3a4a5a6需要满足什么条件? 81(2) 若要x>,a1a2a3a4a5a6需要满足什么条件?
211(3) 若要≥x>,a1a2a3a4a5a6需要满足什么条件?
416(1) 若要x≥解:
1,a1a2a3a4a5a6需要满足:a1a2a3至少有一个1 81(2)要x>,a1a2a3a4a5a6需要满足:a1=1,且a2a3a4a5a6至少有一个为1(不为全0)
211(3)要≥x>,a1a2a3a4a5a6需要满足:
416(1)要x≥
a1=0且 ① a2=1,a3a4a5a6为全0
② a2=0且a3=1,a4a5a6任意
或a2=0且a3=0,a4=1,a5a6至少有一个为1
2.16 表示一个汉字的内码需几个字节?表示一个32×32点阵的汉字字形码需几个字节?在计算机内部如何
区分字符信息与汉字信息? 答:① 一个汉字的内码需2个字节。
② 表示一个32×32点阵的汉字字形码需4×32=128个字节。
③ 在计算机内部利用字节的最高位是0还是1区分字符信息与汉字信息.
2.17 分别用前分隔数字串、后嵌入数字串和压缩的十进制数串形式表示下列十进制数。
(1) +74 (2) -639 (3) +2004 (4) -8510 解:
(1) +74 前分隔数字串
+74
2B “+” 37 “7” 0000 “0”
37 “7” 34 “4” 0111 “7”
0100 “4”
1100 “+”
34 “4”
后嵌入数字串
+74
压缩的十进制数串
+74
(2) -639 前分隔数字串
-639
2D “-“ 36 “6” 0110 “6”
36 “6” 33 “3”
33 “3” 79 “9”
1001 “9”
1101 “-” 39 “9”
后嵌入数字串
-639
压缩的十进制数串 -639
0011 “3”
(3) +2004 前分隔数字串
+2004
2B “+” 32 “2” 0000 “0”
32 “2” 30 “0”
30 “0” 30 “0” 0010 “2”
30 “0” 34 “4” 0000 “0”
0000 “0”
0100 “4”
1100 “+”
34 “4”
后嵌入数字串
+2004
压缩的十进制数串
+2004
(4) -8510 前分隔数字串
-8510
2D “-“ 38 “8” 0000 “0”
38 “8” 35 “5”
35 “5” 31 “1” 1000 “8”
31 “1” 70 “0” 0101 “5”
0001 “1”
0000 “0”
1101 “-”
30 “0”
后嵌入数字串
-8510
压缩的十进制数串 -8510
2.18 数据校验码的实现原理是什么? 答:。数据校验码的实现原理是在正常编码中加入一些冗余位,即在正常编码组中加入一些非法编码,当合法数据编码出现某些错误时,就成为非法编码,因此就可以通过检测编码是否合法来达到自动发现、定位乃至改正错误的目的。在数据校验码的设计中,需要根据编码的码距合理地安排非法编码的数量和编码规则。