【知识点详解】
本题涉及到的是计算机系统结构中的浮点数表示和运算,以及指令系统设计。下面是各个习题的关键知识点:
### 习题2.2
1. **浮点数的表示**:浮点数由阶码(exponent)和尾数(mantissa)组成,阶码通常使用移码表示,尾数可以是补码或原码,这里尾数是补码且为小数,阶码是移码且为整数。
2. **最大尾数**:在补码表示中,最大尾数是除符号位外全1的数值。
3. **最小正尾数**:正尾数的最小值是1的二进制补码形式。
4. **最小尾数**:负尾数的最小值是除符号位外全1的数值。
5. **最大负尾数**:负尾数的最大值是1的二进制补码形式,但第一个非零位为1。
6. **最大阶码**:阶码的最大值等于其表示范围的最大值减去偏置(bias)。
7. **最小阶码**:阶码的最小值等于其表示范围的最小值减去偏置。
8. **最大正数**:最大正数是最大阶码与最大正尾数的组合。
9. **最小正数**:最小正数是1的阶码与最小阶码的组合。
10. **最大负数**:最大负数是最大阶码与最小负尾数的组合。
11. **最小负数**:最小负数是1的阶码与最大负尾数的组合。
12. **浮点零**:浮点零的阶码为最小阶码,尾数为0。
13. **表数精度**:指尾数可以精确表示的最小数值,与尾数的位数有关。
14. **表数效率**:尾数的位数除以基数,这里是16/2。
### 习题2.3
1. **IEEE754浮点数**:这是浮点数的国际标准,包括单精度和双精度。
2. **单精度浮点数**:32位格式,包括1位符号位,8位阶码,23位尾数。
3. **双精度浮点数**:64位格式,包括1位符号位,11位阶码,52位尾数。
4. **最大正数与最小正数**:取决于阶码的最大值和最小值,以及尾数的最大值和最小值。
5. **最大负数与最小负数**:类似正数,但考虑负数的表示。
6. **表数精度**:与尾数位数相关,是尾数可表示的不同数值的数量。
7. **表数效率**:尾数基为2时,表数效率为50%,因为尾数总是二进制。
### 习题2.5
1. **浮点数格式设计**:基于给定的精度和范围要求,确定阶码和尾数的位数。
2. **最大正数和最大负数**:由阶码和尾数的最大值和最小值决定。
3. **表数精度**:尾数位数决定了精度,是浮点数可表示的最小单位。
4. **表数效率**:尾数基数为2,效率为50%。
### 习题2.6
1. **不同标准下的浮点数表示**:比较IBM标准和IEEE754标准下,0.2的二进制表示。
2. **精度和范围的差异**:不同标准下的浮点数有不同的表示范围和精度。
### 习题2.10
1. **指令访问数据统计**:分析指令执行过程中数据访问的总量和频率,以及不同指令格式如何影响存储空间。
2. **数据访问优化**:减少指令字长可以节省存储空间,但要确保数据访问效率。
### 习题2.14
1. **Huffman编码**:用于操作码编码,以达到最短平均长度,平衡指令使用频率。
2. **指令格式设计**:设计不同长度的指令,包括寄存器-寄存器型和寄存器-存储器型,考虑操作码和地址字段的长度。
这些习题涵盖了浮点数的表示、运算、存储和优化,以及指令系统的编码设计,是计算机系统结构中的基础概念。理解这些概念对于深入学习计算机系统的工作原理至关重要。