公司动态

进制转换全攻略:二进制、八进制、十六进制与十进制互转

📅 2026/8/30 5:24:42
进制转换全攻略:二进制、八进制、十六进制与十进制互转
进制转换是专升本计算机基础里的高频考点也是很多同学容易丢分的章节。表面上它只是“逢几进一”的换算规则实际考试中却经常结合二进制原码、反码、补码、IP 地址、文件权限、内存地址等知识点一起出现。如果只会机械地用计算器算不理解位权和分组原理遇到小数转换、混合进制比较大小这类题就容易卡住。这篇文章围绕二、八、十六进制与十进制的互转展开先讲清楚概念和原理再给完整步骤和例题最后整理易错点、高频题型和备考清单适合正在准备专升本计算机基础的考生使用。1. 先理解进制为什么计算机偏向二进制书写却常用八进制和十六进制1.1 从十进制到任意进制基数与进位规则日常生活中最熟悉的是十进制因为它有 0、1、2、3、4、5、6、7、8、9 共十个符号每一位数满十就向前一位进一。这里“十”就是十进制的基数也是进位规则的核心。任意进制的逻辑都一样二进制基数 2使用符号 0 和 1逢二进一。八进制基数 8使用符号 0~7逢八进一。十六进制基数 16使用符号 0~9 和 A、B、C、D、E、F逢十六进一。所谓“逢几进一”可以看成一个计数器个位加满之后个位归零向高位移一位。比如二进制里 1 再加 1不是变成 2而是一位变 0、下一位进 1结果是10读作“一零”在二进制里它就是十进制的 2。许多同学对二进制的10和十进制的“十”产生混淆本质上是因为没有把符号和数值区分开。1.2 计算机内部为什么用二进制计算机的硬件基础是逻辑电路电路只有“高电平”和“低电平”两种稳定状态正好对应二进制的 1 和 0。用二进制能最简单地表示数据也方便用布尔代数做逻辑运算。虽然计算机也能处理字符、图片、视频但这些信息最终都要被编码成二进制数据存储。因此进制转换是计算机基础知识里必须掌握的内容。后续学到的原码、反码、补码、浮点数表示、IP 地址、子网掩码、内存地址、数据存储单位换算都会用到二进制或十六进制。进制转换不熟练后面这些内容学起来会比较吃力。1.3 八进制和十六进制是二进制的“压缩写法”二进制适合机器但对人不太友好。比如十进制 255 写成二进制是11111111位数很长写错、看错的概率很高。八进制和十六进制刚好和二进制有特殊关系由于 8 等于 2 的 3 次方所以 1 位八进制数可以精确对应 3 位二进制数。由于 16 等于 2 的 4 次方所以 1 位十六进制数可以精确对应 4 位二进制数。因此在查看内存地址、寄存器值、文件权限、MAC 地址时人们经常用十六进制或八进制来缩短书写长度。理解了这种对应关系后面的快速转换会变得非常直观。2. 转换前的统一道具数码、基数、位权2.1 数码与基数每个进制能用哪些符号进制转换的核心概念有三个数码、基数、位权。数码就是一个进制中允许出现的数字符号。基数就是数码的个数同时也决定了进位规则。下面是四种常用进制的对比进制基数数码范围进位规则常用后缀十进制100~9逢十进一D 或不写二进制20~1逢二进一B八进制80~7逢八进一O 或 Q十六进制160~9、A~F逢十六进一H书写时二进制数后面可以加 B八进制加 O 或 Q十六进制加 H十进制加 D。比如101B表示二进制数2F H表示十六进制数。不同教材使用的符号可能不同但含义一样。2.2 位权决定每一位真实大小的系数位权是指某个数位在数值中的权重。十进制中个位权重是 10 的 0 次方十位权重是 10 的 1 次方百位权重是 10 的 2 次方。比如十进制数345的含义是3 × 100 4 × 10 5 × 1 300 40 5这里的 100、10、1 就是位权。任意进制转十进制的通用公式是数值 ∑(某位数码 × 基数^位权位置)位权位置从 0 开始向整数部分左数小数点右边的位权位置从 -1 开始向右递减。这个规则适用于所有进制。2.3 0~15 对照表建议先背下来做进制转换时脑子里如果没有一张对照表速度会慢很多。下面是 0 到 15 在四种进制中的表示十进制二进制八进制十六进制000011112102231133410044510155611066711177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F这张表不仅要熟悉最好能做到从十进制数立刻反应出对应的二进制、八进制、十六进制表示。尤其是A~F与10~15的对应关系很多同学在十六进制转十进制时容易忘记。3. 二进制与十进制互转按权展开和除 2 取余3.1 二进制转十进制按权展开再相加方法很简单把每一位二进制数码乘上它所对应的 2 的幂然后求和。例如二进制数1011.101转十进制整数部分1×2^3 0×2^2 1×2^1 1×2^0小数部分1×2^-1 0×2^-2 1×2^-3写成完整计算式1011.101B 8 0 2 1 0.5 0 0.125 11.625D这里要注意小数点左边第一位对应的是2^0不是2^1。很多同学从2^1开始算结果整体翻倍这是最容易犯的错误。3.2 十进制整数转二进制除 2 取余倒序排列把十进制整数不断除以 2每次记录余数直到商为 0然后把余数倒过来写。以 45 为例45 ÷ 2 22 余 1 22 ÷ 2 11 余 0 11 ÷ 2 5 余 1 5 ÷ 2 2 余 1 2 ÷ 2 1 余 0 1 ÷ 2 0 余 1余数从下往上排是101101所以45D 101101B。倒序的原因在于二进制数的最低位是个位而除 2 第一次得到的余数恰好是个位的值因此先算出来的余数要放到最后面。如果正序写就会得到完全错误的结果。3.3 十进制小数转二进制乘 2 取整顺序排列小数部分转换规则和整数不同不断把小数部分乘 2取出乘积的整数位再用剩下的小数部分继续乘直到小数部分为 0 或达到题目要求精度。先取出的整数位要写在前面。以 0.625 为例0.625 × 2 1.25 取整数部分 1余下 0.25 0.25 × 2 0.5 取整数部分 0余下 0.5 0.5 × 2 1.0 取整数部分 1余下 0.0结果是0.101B。所以45.625D 101101.101B。小数部分顺序排列是因为第一次乘 2 得到的是小数点后第一位。如果倒序写就会出现大错。3.4 综合例题与 Python 验证来看一个稍复杂的例子把110011.11B转成十进制。1×32 1×16 0×8 0×4 1×2 1×1 1×0.5 1×0.25 51.75D学习阶段可以用 Python 快速验证结果。下面的代码展示如何转换整数部分# 二进制字符串转十进制整数 binary_str 110011 decimal_value int(binary_str, 2) print(decimal_value) # 输出 51 # 十进制整数转二进制字符串 print(bin(51)) # 输出 0b110011 # 注意 bin() 输出会带前缀 0b做题时要去掉前缀Python 的int(110011, 2)和bin(51)能节省验证时间但考试时不能依赖程序必须手动写出过程。平时可以先手动算再用代码对答案。4. 八进制与十进制互转原理相同基数是 84.1 八进制转十进制位权从 8 的 0 次方开始八进制转十进制的方法和二进制转十进制一致只是把底数从 2 换成 8。例如八进制数372.4转十进制3×8^2 7×8^1 2×8^0 4×8^-1计算过程为3×64 7×8 2×1 4×0.125 192 56 2 0.5 250.5D八进制里不会出现数字 8 和 9。如果题目给出一个包含 8 的“八进制数”这个写法本身就是非法的。看到这类题目时首先要判断数码是否合法。4.2 十进制转八进制整数除 8 取余小数乘 8 取整以十进制 250.5 转八进制为例。整数部分不断除以 8250 ÷ 8 31 余 2 31 ÷ 8 3 余 7 3 ÷ 8 0 余 3余数倒序得到372。小数部分不断乘 80.5 × 8 4.0 取整数 4小数部分为 0得到0.4。所以250.5D 372.4O。4.3 典型例题从结果反推过程有时题目会反过来问372.4O等于多少十进制此时用按权展开即可。也可以把上一步的过程列成表格方便检查步骤操作结果本期得到的数码整数部分第 1 次250 ÷ 8商 31余 22最低位整数部分第 2 次31 ÷ 8商 3余 77整数部分第 3 次3 ÷ 8商 0余 33最高位小数部分第 1 次0.5 × 8乘积整数为 44小数最高位这类表格在草稿纸上不一定要写全但心里要清楚整数部分最后得到的余数是最高位小数部分第一次得到的整数是小数点后第一位。5. 十六进制与十进制互转记住 A~F5.1 十六进制转十进制A~F 对应 10~15十六进制比前几种多一个难点超过 9 的数码用字母表示。转换时必须先把字母换成数字。例如十六进制数2F转十进制2F H 2×16^1 15×16^0 32 15 47D再看带小数的例子A.8HA × 16^0 8 × 16^-1 10 0.5 10.5D这里A等于 108在小数点后第一位位权是 16 的 -1 次方。5.2 十进制转十六进制除 16 取余余数大于 9 时转字母十进制整数转十六进制的过程是不断除以 16 并记录余数。余数如果超过 9要写成对应字母。例如十进制 255 转十六进制255 ÷ 16 15 余 15 → 15 记作 F 15 ÷ 16 0 余 15 → 15 记作 F倒序得到FFH所以255D FFH。例如十进制 431 转十六进制431 ÷ 16 26 余 15 → F 26 ÷ 16 1 余 10 → A 1 ÷ 16 0 余 1 → 1倒序得到1AFH。注意不能把余数 15 直接写成“15”必须写成字母 F否则就不是一位十六进制数码了。小数部分转十六进制同样用乘 16 取整。比如0.625D0.625 × 16 10.0 取整数部分 10记为 A所以0.625D 0.AH。5.3 十进制小数转换时出现无限循环怎么办十进制小数转二进制、八进制、十六进制时不一定都能有限结束。比如十进制0.1转二进制会得到一个无限循环小数0.0001100110011...。考试中遇到这种情况通常会明确要求保留几位小数。做题时要按题目要求保留位数并在结果末尾使用“近似等于”符号而不是写成普通等号。例如0.1D ≈ 0.00011001B保留 8 位小数如果题目没有说明精度可以先写到商为 0 或发现循环规律再按常规保留 4 到 8 位小数。6. 三位分组与四位分组二进制、八进制、十六进制互转6.1 二进制转八进制每 3 位一组因为 2 的 3 次方等于 8所以 3 位二进制数恰好能表示 0~7正好对应八进制的一位。转法如下以小数点为界整数部分从右向左每 3 位分一组不足 3 位在最左边补 0。小数部分从左向右每 3 位分一组不足 3 位在最右边补 0。每一组转成对应的八进制数码按顺序排列。例如11010111.01B转八进制整数部分11010111 从右向左分组11 | 010 | 111 最左边不足 3 位补 0 变成 011 得到011 010 111 小数部分.01 从左向右分组010 右边不足 3 位补 0 变成 010分组后结果011 010 111 . 010 3 2 7 . 2所以11010111.01B 327.2O。6.2 二进制转十六进制每 4 位一组因为 2 的 4 次方等于 16所以 4 位二进制数对应一位十六进制数。还是用11010111.01B举例整数部分从右向左分组1101 | 0111 小数部分从左向右分组0100因为 .01 右边要补两个 0对应关系1101 0111 . 0100 D 7 . 4所以11010111.01B D7.4H。同一个二进制数转八进制和十六进制时补零位置不要搞混转八进制按 3 位补零转十六进制按 4 位补零整数在左边补小数在右边补。6.3 八进制、十六进制转二进制一拆多反向转换时把每一位八进制数码写成 3 位二进制每一位十六进制数码写成 4 位二进制。例如327.2O转二进制3 → 011 2 → 010 7 → 111 . → . 2 → 010结果011 010 111 . 010去掉开头多余的 0 和小数点后末尾多余的 0可以写成11010111.01B。这个结果和 6.1 节中的例子正好互相印证。再例如D7.4H转二进制D → 1101 7 → 0111 . → . 4 → 0100结果1101 0111 . 0100去掉多余 0 后是11010111.01B。二进制、八进制、十六进制之间的转换速度完全取决于你对 0~15 对照表和 3 位/4 位分组的熟练程度。6.4 分组和补零的易错细节很多同学在分组时会在以下几个地方出错整数部分从右边分组却从左右边顺序写反。小数部分补零补在最左边导致数值变化。小数右边补 0 不会改变数值大小左边补 0 才会改变所以小数部分一定要在末尾补 0。整数部分最左边补 0 不影响大小可以省去但在分组过程中建议保留方便统一看好。举例二进制1.01B转八进制。整数部分分组是001小数部分是010结果是1.2O。如果小数部分错误补成001结果是1.1O数值就变了。7. 专升本典型题型进制识别、大小比较与综合应用7.1 题型一给出进制表示要求写出十进制值这类题考查的是按权展开。需要注意两点一是看清进制后缀二是回忆字母对应的数值。练习11011B转十进制。37O转十进制。1FH转十进制。解答1×16 1×8 0×4 1×2 1×1 27D。3×8 7×1 31D。1×16 15×1 31D。这里可以看到37O和1FH都等于十进制 31说明不同进制下数字形式不同但数值可能相同。7.2 题型二多个进制数值比较大小比较大小最稳妥的办法是统一转成十进制再比较大小。例题比较101101B、55O、2FH的大小。先转十进制101101B 32 8 4 1 45D 55O 5×8 5×1 45D 2FH 2×16 15×1 47D结果101101B 55O 2FH。如果数位很多不建议逐个展开每一位可以先用分组法把二进制换成十六进制再比较但最终都要落到十进制判断。7.3 题型三小数转换与精度保留小数转换题常以填空或选择形式出现要求把一个十进制小数转成二进制小数并且保留若干位。例题把0.75D转成二进制。0.75 × 2 1.5 取 1余 0.5 0.5 × 2 1.0 取 1余 0结果0.11B。如果把0.1D转成二进制并保留 5 位小数0.1 × 2 0.2 取 0 0.2 × 2 0.4 取 0 0.4 × 2 0.8 取 0 0.8 × 2 1.6 取 1余 0.6 0.6 × 2 1.2 取 1余 0.2 保留 5 位0.00011B结果应写成0.00011B ≈ 0.1D而不是。7.4 题型四结合数据存储或地址的简单综合题进制转换不是孤立考点在专升本计算机基础里经常和存储容量、内存地址、IP 地址一起出现。例如1 个字节等于 8 位二进制最大能表示11111111B也就是FFH相当于十进制的 255。所以无符号一个字节的取值范围是 0 到 255。内存地址常用十六进制表示是因为每两个十六进制数字对应 8 位正好是一个字节。例如地址0x3F表示二进制00111111读起来比二进制短一半以上。这类综合题难度不高但要求把进制转换和时间单位、字节单位联系起来。平时复习时可以把2^10 1024、2^4 16、2^8 256这些常用幂次背熟能明显加快解题速度。8. 高频丢分点这 5 个坑最值得警惕下表整理了专升本考试中常见的 5 类错误建议考前反复对照错误现象常见原因正确做法十六进制字母忘记转换把F当 15 算错对A~F与10~15的对应关系不熟先把字母转成数字再按权展开除基取余后直接按余数顺序写出结果没有理解最低位先出现需要倒序整数部分要倒序排列余数二进制转八进制时整数部分把分组方向写反没有从右向左分组整数从右向左每 3 位一组不足补 0小数部分补零位置错误在左边补 0混淆整数和小数补零规则小数部分在末尾补 0整数部分在开头补 0位权从 1 开始计算导致结果整体多乘基数对小数点分割位置不敏感小数点左边第一位对应基数的 0 次方除此以外还有两个书写问题容易被扣分结果没有写进制后缀。比如算出来二进制101不写B阅卷时可能被当成十进制 101。十六进制中把10写成A时混淆。转换时余数 10 必须写A11 写B依次类推。建议每道题做完后把结果重新按权展开验证一遍。尤其是十进制转进制再转回十进制的双向验证能同时解决“算错”和“看错”的问题。9. 备考建议与练习清单9.1 学习阶段用什么工具验证转换结果考试严禁用计算器但平时练习时可以用工具快速对答案有助于建立数感。推荐三类工具Windows 计算器的“程序员”模式可以在十进制、二进制、八进制、十六进制之间切换适合验证整数转换。Python 的内置函数int(101, 2)、oct(100)、hex(100)可以快速转换整数。小数需要自己写或者用float.hex()辅助。在线进制转换网站适合作业自检但不要依赖因为考试时无法使用。示例 Python 代码# 常用进制转换验证 print(int(101101, 2)) # 45 print(oct(45)) # 0o55 print(hex(45)) # 0x2d print(format(45, b)) # 101101 print(format(45, o)) # 55 print(format(45, x)) # 2d注意oct和hex输出带0o、0x前缀做题时要参考格式要求决定是否保留。9.2 推荐练习顺序和一天安排建议按照下面的顺序由浅入深背熟 0~15 对照表。练二进制与十进制互转先整数后小数。练八进制与十进制互转。练十六进制与十进制互转重点练字母。练二进制与八进制、十六进制之间的分组转换。练混合题如比较大小、判断合法性、综合应用。复习阶段可以每天安排 30 分钟前 10 分钟默写对照表。中间 15 分钟完成 10 道转换题。最后 5 分钟总结错题类型。错题不是记答案而是记录错误原因。比如“整数余数忘倒序”“十六进制字母处理错”“小数补零位置不对”。把高频错误集中在考前再看一遍比盲目刷题更有效。9.3 各省专升本考试中的常见考查方式山东、四川、江西、河北、辽宁、甘肃、内蒙古、重庆、天津等地的专升本计算机基础大纲不完全相同但进制转换多数出现在选择题或填空题中部分地区会在操作题或简答题里以小问形式出现。省份或地区常见题型特点以历年真题和考纲为参考山东多考二进制、十六进制与十进制互转常结合原码、补码、数据表示四川选择题常考进制识别和大小比较计算量不大江西可能出现填空题要求写出转换结果或补齐分组河北结合存储单位和 IP 地址出题的概率较高辽宁题目直接按权展开和除基取余掌握后基本没问题甘肃多以基本转换题为主注意小数转换步骤内蒙古可能考进制后缀书写规范要求结果规范重庆喜欢用“下列数值最大的是”这类比较题天津常把二进制、八进制、十六进制混合在一道题中这些是常见复习方向具体以本省教育考试院发布的最新考试大纲为准。无论题目怎么变底层能力都是位权、分组、倒序、字母映射这四件事。9.4 冲刺自测清单考前可以对照下面这份清单逐项检查[ ] 能默写 0~15 的二进制、八进制、十六进制表示。[ ] 能说出位权公式并解释为什么整数最低位是基数的 0 次方。[ ] 能熟练完成二进制与十进制互转不混淆整数和小数规则。[ ] 能正确把八进制、十六进制转换为十进制字母 A~F 不出错。[ ] 能按 3 位分组和 4 位分组完成二进制与八进制、十六进制互转。[ ] 能判断一个数是否属于指定进制例如八进制中不能出现 8。[ ] 能将多个进制的数值统一转成十进制后比较大小。[ ] 能在转换结果后正确添加 B、O、H、D 等进制后缀。如果清单中有一项不熟练不要急着做整套卷子先把对应章节的例题重做一遍。进制转换没有太多理解门槛主要靠练习形成条件反射。只要把每条规则的位置、方向、顺序都记清楚考试时就能稳拿这部分的分数。