在考研 408(计算机学科专业基础综合)中,进制问题是计算机组成原理模块的核心基础内容,主要涉及二进制、八进制、十进制、十六进制的转换,以及它们在计算机数据表示(如原码、反码、补码、浮点数)和运算(如加减运算、溢出判断)中的应用。以下从考试角度详细解析进制问题的核心考点和理解要点。
一、进制转换的核心考点(必须熟练掌握)
1. 二进制 ↔ 十六进制
- 二进制转十六进制:从右向左每 4 位一组(不足补 0),每组转换为 1 位十六进制数。 例:
0000 0000 0000 0000 0000 0000 0111 1111→ 每 4 位分组为00000000000000000000000001111111,对应十六进制为00 00 00 7F,即0x0000007F。 - 十六进制转二进制:每 1 位十六进制数展开为 4 位二进制数(不足补 0)。 例:
0x7F→0111 1111。
2. 二进制 ↔ 十进制
- 二进制转十进制:按权展开求和。 例:二进制
1011= \(1×2^3 + 0×2^2 + 1×2^1 + 1×2^0 = 11\)。 - 十进制转二进制:
- 整数部分:除 2 取余,逆序排列。
- 小数部分:乘 2 取整,顺序排列(注意可能无限循环,需按精度截断)。 例:十进制
13→ 二进制1101。
3. 二进制 ↔ 八进制
- 二进制转八进制:从右向左每 3 位一组(不足补 0),每组转换为 1 位八进制数。
- 八进制转二进制:每 1 位八进制数展开为 3 位二进制数(不足补 0)。 例:八进制
077→ 二进制111111。
4. 有符号数的进制转换(补码为核心)
- 计算机中整数通常以补码形式存储,转换时需注意符号位:
- 正数:原码 = 反码 = 补码,直接转换。
- 负数:先求绝对值的二进制,再取反加 1 得到补码。 例:十进制
-1的 8 位补码为11111111(二进制),对应十六进制0xFF。
二、考研重点:进制与计算机数据表示
1. 定点数的表示与运算
- 原码、反码、补码的范围:

- 溢出判断(核心考点):
- 加法溢出:两个同符号数相加,结果符号与原符号相反,则溢出。 例:8 位补码中,
127(01111111) + 1(00000001)= 10000000(-128),符号位从 0 变 1,溢出。 - 减法溢出:两个异符号数相减,结果符号与被减数符号相反,则溢出。
- 进位法:最高位进位与符号位进位不同则溢出(适用于补码运算)。
- 加法溢出:两个同符号数相加,结果符号与原符号相反,则溢出。 例:8 位补码中,
2. 浮点数的规格化表示(IEEE 754 标准)
- 浮点数格式:符号位 (S) + 阶码 (E) + 尾数 (M)。
- 进制转换步骤:
- 将十进制数转换为二进制(如
10.5 → 1010.1)。 - 规格化:移动小数点使尾数首位为 1(如
1.0101×2^3)。 - 计算阶码:偏移后的值(如单精度阶码偏移量 127,
3+127=130→10000010)。 - 尾数:去掉首位 1,保留小数部分(如
0101补零至 23 位)。
- 将十进制数转换为二进制(如
- 例:
10.5的单精度浮点数二进制表示为:0(符号位)10000010(阶码)01010000000000000000000(尾数),对应十六进制0x41480000。
三、典型题型与解题思路
1. 进制转换与补码运算
例题:若 8 位补码表示的二进制数为10101010,其对应的十进制数是多少? 解析:
- 符号位为 1,负数,需求原码: 补码
10101010→ 减 1 得反码10101001→ 取反得原码11010110(绝对值为106)。 - 结果:
-106。
2. 溢出判断
例题:8 位补码中,计算98 + (-64)是否溢出? 解析:
98补码:01100010,-64补码:11000000。- 相加:
01100010 + 11000000 = 10010010(符号位为 1,结果为负数)。 - 实际结果:
98-64=34(正数),但计算结果为负数,说明溢出(原因:8 位补码范围为 – 128~127,98+(-64)=34未溢出,此处可能题目设计错误,需注意实际运算逻辑)。 注:实际计算中,98+(-64)=34未超范围,无溢出,需警惕题目陷阱(如是否为无符号数)。
3. 浮点数规格化
例题:将十进制数-0.375转换为单精度浮点数的十六进制表示。 解析:
-0.375二进制:-0.011→ 规格化:-1.1×2^-2。- 符号位:1。
- 阶码:
-2 + 127 = 125 → 01111101。 - 尾数:去掉首位 1,剩余
1补零至 23 位:10000000000000000000000。 - 二进制表示:
1 01111101 10000000000000000000000→ 十六进制:0xBE800000。
四、备考建议
- 熟练掌握转换技巧:
- 二进制与十六进制的快速转换(四位一组)是核心,需做到眼算无误。
- 补码与十进制的互转需结合符号位和取反加 1 规则。
- 理解溢出本质:
- 溢出仅发生在有符号数运算中,无符号数超过范围时仅产生进位 / 借位,不叫溢出。
- 用 “符号位变化” 或 “进位异或” 法快速判断溢出。
- 结合真题训练:
- 分析历年真题中进制相关题目(如 2017 年第 3 题、2020 年第 4 题),总结出题规律(如浮点数规格化、补码运算溢出)。
- 注意细节陷阱:
- 无符号数与有符号数的区别(如
0xFF作为无符号数是 255,作为补码是 – 1)。 - 浮点数的隐藏位(如 IEEE 754 单精度尾数隐含首位 1)。
- 无符号数与有符号数的区别(如
五、总结
进制问题在考研 408 中虽基础,但贯穿计算机组成原理的核心知识点(如数据表示、运算器设计)。复习时需将进制转换与补码、浮点数、溢出判断等结合,避免孤立记忆转换方法。通过大量例题练习,培养 “看到二进制数即联想到补码值、看到浮点数即拆解为三部分” 的思维习惯,才能在考试中快速准确作答。
本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客