
专升本计算机基础里二、八、十六进制互转是第一章的高频考点也是很多同学从“看得懂”到“做得对”之间最容易卡住的地方。有的同学记了分组法却不知道小数部分为什么要反向补零有的同学背下了字母表却不知道怎么拆位还有同学只会套公式题目一变就乱。这篇内容专门讲二、八、十六进制互转把这几种转换方式和背后的原理一次说清楚。它适合正在准备山东、四川、江西、河北、辽宁、甘肃、内蒙古、重庆、天津等地专升本计算机基础的同学也适合计算机一级、二级或大一期末复习。你不需要提前掌握很多知识只要能看懂 0 和 1就能跟着下面的步骤走。最值得先记住的一个结论是八进制和十六进制分别是二进制的“三位一组”和“四位一组”的缩写形式所以它们之间的互转可以非常快而十进制更适合作为兜底验证。1. 先搞懂为什么专升本要考进制转换1.1 进制转换在考试中怎么出现在专升本计算机基础试卷里进制转换通常出现在选择题、填空题偶尔会在简答题里让你写出转换过程。如果学校用的是《计算机文化基础》这类大纲第一章“计算机基础知识”一定会涉及数制与编码。出题方式大概有这几种给一个二进制数让你选对应的十六进制给一个八进制数让你转成二进制给一个十进制整数让你填转成十六进制后的结果有时候会把进制转换揉进 ASCII码、汉字编码、IP 地址、原码反码补码相关题目里。所以进制转换不只是一章孤立的内容。你后面学到数据表示、存储器容量计算、网络地址时还会频繁看到二进制和十六进制。如果这里没有练熟后面会反复吃亏。我一般会提醒学生不要把进制转换当成“背公式”的送分题而要真正理解每一位数字代表什么否则题目一变形就容易错。1.2 二、八、十六进制的关系为什么它们能直接互转二进制的基数是 2八进制的基数是 8十六进制的基数是 16。这三个数之间有很直接的关系2 的 3 次方等于 82 的 4 次方等于 16。也就是说二进制里每三位正好可以对应一位八进制每四位正好可以对应一位十六进制。这就是“三位一组”“四位一组”做转换的根本原因。很多人会觉得八进制和十六进制是独立的新进制其实不是。在计算机里二进制太长了写起来容易看错所以会用八进制或十六进制做“缩写”。比如二进制 1101011 写起来七位阅读容易出错转成八进制是 153转成十六进制是 6B明显短很多。这也是为什么汇编语言、内存地址、文件权限里经常出现十六进制和八进制。这里有一个边界需要说清楚只有二进制、八进制、十六进制之间可以这样直接分组转换因为它们的基数都恰好是 2 的整数次幂。二进制和十进制之间不能“三位一组”或“四位一组”直接转必须用位权展开或除乘取余。理解了这一点你就知道什么时候用分组法什么时候用位权法。那八进制和十六进制之间能不能直接分组转换答案是不能因为 8 和 16 之间是 2 的 3 次方和 2 的 4 次方的关系没有直接的整数分组对应。但可以通过二进制作为中间桥梁先把八进制每位拆成三位二进制再重新按四位一组合成十六进制。这样比先转十进制更快后面第 4 节和第 5 节会展开。2. 二进制转八进制和十六进制分组法最省事2.1 二进制转八进制三位一组先看怎么把二进制转成八进制。步骤并不复杂先找到小数点。如果题目给的二进制没有小数点就默认小数点在最右边。整数部分从小数点开始向左每三位一组从右往左分。小数部分从小数点开始向右每三位一组从左往右分。如果最左边一组不够三位就在前面补 0如果最右边一组不够三位就在后面补 0。把每组三位二进制转成一位八进制数字。举个例子二进制 1101011.01 转八进制。整数部分 1101011从右往左三位一组先是 011再是 101最后剩一个 1补 0 成 001所以分组为 001 101 011。分别对应 1、5、3。小数部分 .01从左往右三位一组只有两位补 0 成 010对应 2。最终结果是 153.2。展开写就是1101011.01(2) 001 101 011 . 010(2) 153.2(8)注意整数部分在最左边补 0 不影响大小小数部分在最右边补 0 也不影响大小。很多人会问小数部分为什么一定要向右补 0因为小数部分的权重从 2 的 -1 次方开始右边补 0 相当于增加更低位的 0原数不变如果向左补 0就会把原来的数字位置改变数值就错了。2.2 二进制转十六进制四位一组二进制转十六进制步骤几乎一样只是把“三位一组”改成“四位一组”。从小数点向左、向右分别按四位分组不足四位的时候整数部分在左边补 0小数部分在右边补 0。每一组四位二进制对应一位十六进制数字。继续用 1101011.01 举例。整数部分 1101011从右往左四位一组先是 1011剩下 110补 0 成 0110所以分组为 0110 1011分别对应 6 和 B。小数部分 .01从左往右四位一组只有两位补 0 成 0100对应 4。最终结果是 6B.4。1101011.01(2) 0110 1011 . 0100(2) 6B.4(16)这里要注意十六进制里 10 到 15 要用 A 到 F 表示。10 对应 A11 对应 B12 对应 C13 对应 D14 对应 E15 对应 F。很多同学把 11 直接写成 11这在十六进制里不是合法的单个数字。2.3 带小数点的二进制怎么分组再强调一次分组方向整数部分从右往左分小数部分从左往右分分组不足时整数部分补左边小数部分补右边。用二进制 101.101 来跑一遍。转八进制整数部分 101 正好三位对应 5小数部分 101 正好三位对应 5结果是 5.5。转十六进制整数部分 101 不足四位补 0 成 0101对应 5小数部分 101 不足四位补 0 成 1010对应 A结果是 5.A。如果不小心把方向搞反结果会完全不对。比如小数部分 101 向右补 0 得 1010代表 0.1010等于十进制 0.625如果向左补 0 得 0101代表 0.0101等于十进制 0.3125。两者差了一倍。所以补 0 方向必须按规则来。3. 八进制、十六进制转二进制拆位法3.1 每一位八进制拆成三位二进制八进制转二进制是分组法的逆过程。把每一位八进制数字都写成对应的三位二进制不足三位的在左边补 0 补成三位然后把所有二进制位连起来最后去掉整数部分最左边多余的 0。八进制数字和三位二进制的对应关系0 - 000 1 - 001 2 - 010 3 - 011 4 - 100 5 - 101 6 - 110 7 - 111举例八进制 153.2 转二进制。1 对应 0015 对应 1013 对应 011小数部分 2 对应 010连起来就是 001 101 011 . 010。去掉整数部分最前面的两个 0得到 1101011.01。这个过程正好是前面二进制转八进制的反向操作可以用来互相验证。这里最容易犯的错误是把八进制 1 直接写成 15 直接写成 1013 直接写成 11然后拼成 110111。这样写会丢掉位与位之间的对应关系结果也会差很多。尤其是当八进制某一位是 0 时更要写成 000不能省略。比如八进制 3073 对应 0110 对应 0007 对应 111连起来是 011000111去掉前导 0 得到 11000111。中间的 0 必须保留否则数值完全不对。3.2 每一位十六进制拆成四位二进制十六进制转二进制方法是每一位十六进制数字拆成四位二进制。同样不足四位补 0。十六进制和四位二进制的对应关系建议背熟0 - 0000 1 - 0001 2 - 0010 3 - 0011 4 - 0100 5 - 0101 6 - 0110 7 - 0111 8 - 1000 9 - 1001 A - 1010 B - 1011 C - 1100 D - 1101 E - 1110 F - 1111举例十六进制 6B.4 转二进制。6 对应 0110B 对应 10114 对应 0100连起来是 0110 1011 . 0100。去掉整数部分最前面的一个 0得到 1101011.01。这个结果和前面从二进制转成十六进制时完全一致说明步骤是对的。平时练习时可以用这种方法做回代检查。3.3 常见错误拆位后丢掉中间的零在作业里经常看到这样的写法十六进制 0x10 转二进制有人写成 1 0000还有人写成 1000。正确结果应该是 0001 0000去掉前导 0 后是 10000。关键问题出在中间某一位为 0 时容易丢。比如十六进制 0xA0A 对应 10100 对应 0000拼接后是 10100000。很多同学会写成 1010 0 或 1010000少了一位。正确做法是A 和 0 各占四位所以结果一定是 8 位二进制再去掉最前面的 1 后面的 0 不对这里的第一个字符是 1所以前导 0 不存在注意 10100000 第一位是 1不能去掉结果是 10100000。如果最高位是 0比如 0x0F结果是 00001111去掉前导 0 得 1111。判断标准可以这样记一个八进制位拆成 3 位二进制一位十六进制位拆成 4 位二进制。转换结果大概会有“位数乘 3 或乘 4”那么长如果明显少了一定是丢了某个 0。4. 二、八、十六进制和十进制互转位权展开才是根4.1 其他进制转十进制按位权展开位权就是当前位的权重。对于二进制整数部分从右往左的权重分别是 2^0、2^1、2^2……小数部分从左往右分别是 2^-1、2^-2……。转换时用每一位数字乘以该位的权重再相加。例如二进制 1101.11×2^3 1×2^2 0×2^1 1×2^0 1×2^-1 8 4 0 1 0.5 13.5八进制转十进制也是一样只是底数换成 8。比如八进制 153.21×8^2 5×8^1 3×8^0 2×8^-1 64 40 3 0.25 107.25十六进制转十进制底数换成 16。比如十六进制 6B.46×16^1 11×16^0 4×16^-1 96 11 0.25 107.25你会发现前面例子里的二进制 1101011.01、八进制 153.2、十六进制 6B.4其实是同一个数都等于十进制 107.25。这就是进制转换的意义同一个数值可以用不同进制表示。4.2 十进制转二进制整数除2取余、小数乘2取整十进制转二进制要分成整数部分和小数部分来处理。整数部分用“除 2 取余法”把整数不断除以 2记下余数直到商为 0。余数从下往上倒序排列。例如十进制 1313 ÷ 2 6 余 1 6 ÷ 2 3 余 0 3 ÷ 2 1 余 1 1 ÷ 2 0 余 1余数从下往上读是 1101所以 13(10) 1101(2)。小数部分用“乘 2 取整法”把小数不断乘以 2取乘积的整数部分再用剩下的小数部分继续乘直到小数部分为 0 或达到要求的精度。整数部分从上往下正序写。例如十进制 0.250.25 × 2 0.5取整数 0剩 0.5 0.5 × 2 1.0取整数 1剩 0从上往下读是 01所以 0.25(10) 0.01(2)。合并起来13.25(10) 1101.01(2)。这里最容易记反的就是方向整数部分除 2 取余要倒序小数部分乘 2 取整要正序。两个方向一旦反了结果就完全不对。4.3 十进制转八进制和十六进制同样思路十进制转八进制整数部分用“除 8 取余法”小数部分用“乘 8 取整法”十进制转十六进制整数部分用“除 16 取余法”小数部分用“乘 16 取整法”。举例十进制 153 转八进制。153 ÷ 8 19 余 1 19 ÷ 8 2 余 3 2 ÷ 8 0 余 2余数从下往上读是 231所以 153(10) 231(8)。十进制 153 转十六进制153 ÷ 16 9 余 9 9 ÷ 16 0 余 9余数从下往上读是 99所以 153(10) 99(16)。如果余数超过 9要写成 A-F。例如十进制 171 转十六进制171 ÷ 16 10 余 11 10 ÷ 16 0 余 10余数从下往上读是 10、11分别写成 A、B所以 171(10) AB(16)。一定先把十进制余数 10 和 11 转成字母 A 和 B再排顺序。小数部分的乘 8、乘 16 平时考得少原理和乘 2 一样。如果不会可以先把十进制小数转成二进制再用分组法转成八进制或十六进制会更好理解。4.4 用十进制做中间桥梁的实用组合在考场上如果题目让你做八进制和十六进制互转你一下子想不起通过二进制中转的方法最稳妥的办法是先用十进制做中间桥梁。步骤是把原进制按位权展开转成十进制再把十进制用除乘取余法转成目标进制。比如八进制 153 转十六进制。先按位权展开153(8) 1×64 5×8 3 107(10)。再把 107 转十六进制107 ÷ 16 6 余 11 6 ÷ 16 0 余 6余数从下往上读是 6、1111 写成 B所以 153(8) 6B(16)。这个办法比直接二进制中转慢一点但每一步都有固定流程不容易错。我会建议考生平时练习两种方式直接转换用于提升速度十进制兜底用于考场检查。如果你发现自己用直接法经常漏 0那就每道题最后用十进制法验算一遍错误率会明显下降。5. 巧用8421码快速转换5.1 8421码的本质四位二进制从高位到低位的权值分别是 8、4、2、1这就是常说的 8421 权值。当你看到一个四位二进制数比如 1010可以快速判断它包含一个 8 和一个 2加起来是 10对应十六进制 A。再看 1011是 82111对应十六进制 B。为什么有用因为十六进制每一位对应四位二进制而四位二进制的权值恰好是 8421。你要做的就是把四位二进制拆成“8、4、2、1”这几个权值的组合很快能算出对应的十六进制。八进制则是三位二进制权值是 4、2、1。注意这里说的 8421 权值法不是教材里的 8421 BCD 码。BCD 码通常也用四位二进制表示十进制数字 0-9写法碰巧很像但含义不同。考试里如果出现“8421码”这个词一定要结合上下文判断。5.2 二进制和十六进制快速互转有了 8421 权值二进制和十六进制互转会非常快。比如二进制 1001权值 819对应十六进制 9。 二进制 1110权值 84214对应十六进制 E。 二进制 0011权值 213对应十六进制 3。反过来十六进制转二进制可以把十六进制数字拆成 8421 的组合。比如 D 13 841所以 D 的二进制是 1101。7 421二进制是 0111。注意 7 拆完是 0111如果只写 111后面拼接时会少一位。建议写的时候固定补足四位0-7 分别对应 0000-01118-15 对应 1000-1111。下面这张表最好背熟它是二进制、八进制、十六进制互转的基础十进制十六进制四位二进制八进制00000001100011220010233001134401004550101566011067701117881000109910011110A10101211B10111312C11001413D11011514E11101615F111117注意表格中“八进制”这一列是按二进制“三位一组”得到的结果所以十进制 8 对应八进制 109 对应 11。这正好体现了三位一组的规律。5.3 二进制和八进制快速互转八进制对应三位二进制权值是 4、2、1。所以二进制 101就是 415二进制 111就是 4217。反过来八进制 5 写成二进制 101因为 5 41。平时看到二进制 1101011.01用 8421 权值按四位一组转十六进制是 6B.4按三位一组转八进制是 153.2。这个过程熟练之后速度会很快。我会建议学生把这张对照表抄一份贴在电脑前但不要长期依赖。最好练到看到十六进制数字能直接说出四位二进制看到三位二进制能直接说出八进制数字。这样考试时不用现场笔算能省下很多时间。6. 专升本实战典型题型、易错点和检查方法6.1 常见题型和解题步骤专升本计算机基础里的进制转换题常见有这几种单选给出二进制 1101011问对应的八进制和十六进制填空十六进制 6B 转换成二进制结果是判断八进制 153 和二进制 1101011 是否相等简答将十进制 107.25 转换为二进制、八进制、十六进制写出过程。不管题目怎么出按下面的顺序走最稳先看题目给的数是几进制要求转成几进制。如果是在二进制、八进制、十六进制之间转换优先用分组法或拆位法。如果涉及十进制先用位权展开或除乘取余法。写出最终结果确保小数点和字母书写清楚。回代验证把结果按相反方向转回原进制看是否一致。举例把十六进制 6B.4 转成十进制。6B.4(16) 6×16 11×1 4×1/16 96 11 0.25 107.25再做回代107.25 转二进制、八进制、十六进制如果最后得到 1101011.01、153.2、6B.4说明前面步骤全部正确。这个方法比较稳考试来不及完整写过程时也可以用最后一步快速检查。6.2 容易丢分的四个地方结合平时看到的作业最常丢分的点有四个。第一分组方向错。整数部分从右往左分小数部分从左往右分。有人把小数部分也按从右往左分结果整个数就不对了。第二拆位时丢 0。八进制拆三位十六进制拆四位每一位都要拆成固定位数。中间某一位是 0 时尤其容易丢。比如十六进制 0x10 拆成二进制正确写法是 0001 0000去掉前导 0 后是 10000如果中间少写一个 0变成 1000数值就错了。第三除 2 取余忘记倒序。整数部分转换时余数要从下往上读小数部分乘 2 取整要从上往下读。顺序反了答案就完全不同。第四十六进制字母处理不当。10 不是十六进制里的数字要写成 A11 写成 B12 写成 C13 写成 D14 写成 E15 写成 F。反过来看到字母 A 要想到 10看到 F 要想到 15。另外还有一个容易被忽略的问题题目如果要求写出转换过程那就一定要把过程写出来不要只给结果。阅卷时按步骤给分过程比答案更重要。6.3 验证结果是否正确的方法推荐两种验证方法回代法和十进制法。回代法你把二进制 1101011.01 转成了十六进制 6B.4那就倒过来把 6B.4 按拆位法拆回二进制看是不是 1101011.01。如果一致基本没问题。这个过程很快30 秒内能完成。十进制法把原数和结果都转成十进制比较是否相等。例如原数是二进制 1101011.01转成十进制是 107.25结果十六进制 6B.4 转成十进制也是 107.25。这样能发现小数点位置和字母写错的问题。平时练习时可以用电脑自带计算器的“程序员”模式辅助验证但考试时一定不能依赖计算器。我建议做题后立刻用手工回代而不是直接翻答案这样才能找到自己到底哪一步容易出错。6.4 平时复习建议准备专升本不是做几道题就能稳定拿分的。建议按三个阶段练。第一阶段背表。把 0 到 15 的十进制和二进制、八进制、十六进制对应关系背熟。尤其要记住 A-F 对应 10-15。这是所有快速转换的基础。第二阶段练步骤。每天固定做 10 道换算题全部手写过程。不要心算到最后直接写答案步骤容易暴露问题。每次写完后用回代法检查。第三阶段练速度。连续做 20 道选择题每道控制在 1 分钟内。考试时进制转换题通常不给太多时间熟练度比“会做”更重要。如果能把进制转换和后面的数据表示、字符编码、IP 地址等内容联系起来会更容易理解为什么需要十六进制。比如 ASCII 码经常写成两个十六进制位内存地址也常用十六进制表示。这些地方都会反复用到二、八、十六进制互转提前练熟不吃亏。最后想分享一个经验很多同学在进制转换上丢分不是因为不会而是因为几个小细节反复出错补 0 方向、分组方向、余数顺序、字母写错。我一般建议准备一个“错题小本”每次做错就只记一句话考前翻一遍比自己盲刷十套题更有效。你不需要把所有方法都背下来先把分组法和拆位法练熟再用十进制当兜底验证专升本计算机基础里的进制转换题基本就稳了。