1、第 2 章 数据表示习题 2.1简答题(1)使用二进制 8 位表达无符号整数,257 有对应的编码吗?(2)字符“F”的 ASCII 码和数值 46H 的整数编码在计算机内部是否一样?(3)引入十六进制是因为 16 位 8086 处理器吗?(4)正整数求补码时,需要求补过程吗?(5)一个数字开头的文件名、一个字母开头的文件名,如果按照从小到大排列,哪个文件会排在前面?(6)大小写字母转换使用了什么规律?(7)浮点数据为什么要采用规格化形式?(8)为什么浮点数据编码有舍入问题,而整数编码却没有?(9)采用奇校验的一个编码如果出现两位传输错误,接收端会发现吗?(10)循环冗余校验码的“循环”和“冗
2、余”表达什么意思?习题 2.2判断题(1)对一个正整数,它的原码、反码和补码都一样,也都与无符号数的编码一样。(2)常用的 BCD 码为 8421 BCD 码,其中的 8 表示 D3 位的权重。(3)IA-32 处理器采用小端方式存储多字节数据。(4)无符号数在前面加零扩展,数值不变;有符号数前面进行符号扩展,位数加长一位、数值增加一倍。(5)在文字编辑软件中,按下键盘上的空格键往往显示空白,所以 ASCII 的空格编码不是字符编码。(6)Uincode 与 ASCII 兼容,但是一种支持中文的编码,。(7)IEEE 754 规定的浮点数据格式的阶码与标准偏移码一样。(8)一个数据采用偶校验,
3、其校验位是 1;如果改为奇校验,则校验位一定是 0。(9)CRC 和海明码都是具有纠错能力的校验码。(10)CRC 需要生成多项式,但该生成多项式可以任意构造。习题 2.3填空题(1)真值-1,如果用 8 位二进制补码表示是_,如果用 16 位二进制补码表示是_。(2)计算机中有一个“01100001”编码。如果把它认为是无符号数,它是 10 进制数_;如果认为它是 BCD 码,则表示真值_;又如果它是某个 ASCII码,则代表字符_。(3)C 语言用“n”表示让光标回到下一行首位,在 DOS、Windows 中需要输出两个控制字符:一个是回车,其 ASCII 码是_,它将光标移动到当前所在行
4、的首位;另一个是换行,其 ASCII 码是_,它将光标移到下一行。(4)8 个二进制位具有_个不同的编码。如果某种编码用 00H 表示真值-2,01H 表示-1,02H 表示 0,03H 表示 1,依次顺序编码表示,则 FFH 表示真值_。(5)一个十六进制位对应_个二进制位。IA-32 处理器具有 32 个地址信号,所以用十六进制表达一个地址应该有_位。(6)真值-15 的 8 位原码是_,8 位反码是_,8 位补码是_。(7)有一个 32 位整数编码,在 IA-32 处理器的主存中占用_个字节空间,起始于 405000H 地址,则最高字节存放的地址是_。(8)单精度浮点规格化格式能表达的数
5、据范围是从_到_。出现比最小数还要小的数据,就是出现了_;出现比最大数还要大的数据,就是出现了_。(9)单精度浮点数据格式共有_位,其中符号位占一位,阶码部分占_位,尾数部分有_位。(10)一个采用了奇偶校验的编码:110110001。如果这是一个正确的编码,那么它采用_(奇、偶)校验,如果最高位是校验位,则数据位是_。习题 2.4下列十六进制数表示无符号整数,请转换为十进制形式的真值:(1)FFH (2)0H (3)5EH (4)EFH习题 2.5将下列十进制数真值转换为压缩 BCD 码(用十六进制表达):(1)12 (2)24 (3)68 (4)99习题 2.6将下列压缩 BCD 码转换为
6、十进制数:(1)10010001 (2)10001001 (3)00110110 (4)10010000习题 2.7将下列十进制数用 8 位二进制补码表示:(1)0 (2)127 (3)127 (4)57习题 2.8进行十六进制数据的加减运算,并说明是否有进位或借位:(1)1234H7802H(2)F034H5AB0H(3)C051H1234H(4)9876HABCDH习题 2.9数码 09、大写字母 AZ、小写字母 az 对应的 ASCII 码分别是多少?ASCII 码 0DH和 0AH 分别对应什么字符?习题 2.11多字节数据的存储顺序对不同类型的处理器有“小端”、“大端”的区别。习题
7、2.12已知 BF600000H 是一个单精度规格化浮点格式数据,它表达的实数是什么?习题 2.13实数真值 28.75 如果用单精度规格化浮点数据格式表达,其编码是什么?习题 2.16如下 8 位编码如果采用奇校验,给出校验位是 0 还是 1。如果采用偶校验,则各个校验位又是什么?(1)10010001 (2)10011001 (3)00110110 (4)11010000习题 2.17计算机接收到一个二进制位串:100010101 010101010 001111010 100101001。这个位串从右到左每 9 位是一个数据,其中最左位为偶校验位。说明这些数据中是否出现了传输错误,如果有错误请指出是哪个字符。