⌨ 知识库 进制转换(二进制_八进制_十进制_十六进制) 这篇笔记暂无摘要。 分类 C++ 难度 基础 阅读 4 分钟 浏览 17 更新 2026-7-14 15:10:38 🌐 所有人可见 登录后记录进度 导出 MD 复制链接 打印 / PDF ## 一、四种进制基础规则 1. **十进制(DEC)** - 组成:数字**0~9** - 标识:**不以0开头** 2. **二进制(BIN)** - 组成:仅数字**0、1** 3. **八进制(OCT)** - 组成:数字**0~7** - 标识:**以0开头** 4. **十六进制(HEX)** - 组成:数字**0~9** + 字母**A**<sub>**F(a**</sub>**f)** - 标识:**以0x开头** - 字母对应值:A=10、B=11、C=12、D=13、E=14、F=15 --- ## 二、十进制 → 二进制/八进制/十六进制 ### (一)整数部分转换:除基取余,逆序输出 核心方法:用十进制数**除以目标进制基数**,记录余数,重复至商为0,**余数从下往上写**。 1. **十进制 → 二进制** - 基数:2 - 步骤:÷2取余→商继续÷2→直到商为0→逆序拼余数 - 示例:9₍₁₀₎ → 二进制 9÷2=4 余1;4÷2=2 余0;2÷2=1 余0;1÷2=0 余1 逆序余数:**1001₍₂₎** 2. **十进制 → 八进制** - 基数:8 - 步骤:÷8取余→商继续÷8→直到商为0→逆序拼余数 - 示例:796₍₁₀₎ → 八进制 796÷8=99 余4;99÷8=12 余3;12÷8=1 余4;1÷8=0 余1 逆序余数:**1434₍₈₎** 3. **十进制 → 十六进制** - 基数:16 - 步骤:÷16取余→商继续÷16→直到商为0→逆序拼余数(≥10用A-F代替) - 示例:796₍₁₀₎ → 十六进制 796÷16=49 余12(C);49÷16=3 余1;3÷16=0 余3 逆序余数:**31C₍₁₆₎** ### (二)小数部分转换:乘基取整,顺序输出 核心方法:用十进制小数**乘以目标进制基数**,取整数部分,剩余小数继续乘,**整数部分从上往下写**,直到达到精度要求。 1. **十进制小数 → 二进制小数** - 基数:2 - 示例:0.68₍₁₀₎ → 二进制(精确到小数点后5位) 0.68×2=1.36 → 取整1;0.36×2=0.72 → 取整0 0.72×2=1.44 → 取整1;0.44×2=0.88 → 取整0 0.88×2=1.76 → 取整1 顺序拼整数:**0.10101₍₂₎** 2. **十进制小数 → 八进制小数** - 基数:8 - 示例:0.68₍₁₀₎ → 八进制(精确到小数点后3位) 0.68×8=5.44 → 取整5;0.44×8=3.52 → 取整3 0.52×8=4.16 → 取整4 顺序拼整数:**0.534₍₈₎** 3. **十进制小数 → 十六进制小数** - 基数:16 - 示例:0.68₍₁₀₎ → 十六进制(精确到小数点后3位) 0.68×16=10.88 → 取整A;0.88×16=14.08 → 取整E 0.08×16=1.28 → 取整1 顺序拼整数:**0.AE1₍₁₆₎** ### (三)带小数十进制转换(整数+小数分开算) 示例:10.68₍₁₀₎ → 八进制 + 整数部分10₍₁₀₎:10÷8=1余2,1÷8=0余1 → 12₍₈₎ + 小数部分0.68₍₁₀₎:0.534₍₈₎ + 结果:**12.534₍₈₎** --- ## 三、二进制/八进制/十六进制 → 十进制 ### (一)整数部分转换:按权展开求和 核心方法:从右往左,位权为**基数ⁿ**(n从0开始),每位数字×对应位权,结果相加。 1. **二进制 → 十进制** - 位权:2⁰、2¹、2²… - 示例:1001₍₂₎ → 十进制 1×2³+0×2²+0×2¹+1×2⁰=8+0+0+1=**9₍₁₀₎** 2. **八进制 → 十进制** - 位权:8⁰、8¹、8²… - 示例:1434₍₈₎ → 十进制 1×8³+4×8²+3×8¹+4×8⁰=512+256+24+4=**796₍₁₀₎** 3. **十六进制 → 十进制** - 位权:16⁰、16¹、16²… - 示例:31C₍₁₆₎ → 十进制 3×16²+1×16¹+12×16⁰=768+16+12=**796₍₁₀₎** ### (二)小数部分转换:按负权展开求和 核心方法:小数点后从左往右,位权为**基数⁻¹、基数⁻²…**,每位数字×对应位权,结果相加。 1. **二进制小数 → 十进制** - 位权:2⁻¹、2⁻²… - 示例:0.10101₍₂₎ → 十进制 1×2⁻¹+0×2⁻²+1×2⁻³+0×2⁻⁴+1×2⁻⁵=0.5+0+0.125+0+0.03125=**0.65625₍₁₀₎** 2. **八进制小数 → 十进制** - 位权:8⁻¹、8⁻²… - 示例:72.45₍₈₎ → 十进制 整数:7×8¹+2×8⁰=58;小数:4×8⁻¹+5×8⁻²=0.5+0.078125=0.578125 结果:**58.578125₍₁₀₎** 3. **十六进制小数 → 十进制** - 位权:16⁻¹、16⁻²… - 示例:1A6.3B8₍₁₆₎ → 十进制 1×16²+10×16¹+6×16⁰ +3×16⁻¹+11×16⁻²+8×16⁻³=**422.232422₍₁₀₎** ### (三)带小数非十进制转换(整数+小数分开算) 示例:12.534₍₈₎ → 十进制 + 整数部分12₍₈₎:1×8+2=10₍₁₀₎ + 小数部分0.534₍₈₎:5×8⁻¹+3×8⁻²+4×8⁻³≈0.68₍₁₀₎ + 结果:**10.68₍₁₀₎** --- ## 四、二进制 ↔ 八进制/十六进制 ### (一)二进制 ↔ 八进制 核心规则:**1位八进制 = 3位二进制** 1. **二进制 → 八进制** - 整数:从**右往左**3位一组,不足左补0 - 小数:从**左往右**3位一组,不足右补0 - 每组对应1位八进制 - 示例:10100100₍₂₎ → 八进制 分组:010 100 100 → 对应2、4、4 → **244₍₈₎** 2. **八进制 → 二进制** - 每位八进制拆成**3位二进制**,直接拼接 - 示例:244₍₈₎ → 二进制 2→010、4→100、4→100 → **10100100₍₂₎** ### (二)二进制 ↔ 十六进制 核心规则:**1位十六进制 = 4位二进制** 1. **二进制 → 十六进制** - 整数:从**右往左**4位一组,不足左补0 - 小数:从**左往右**4位一组,不足右补0 - 每组对应1位十六进制 - 示例:10100100₍₂₎ → 十六进制 分组:1010 0100 → 对应A、4 → **A4₍₁₆₎** 2. **十六进制 → 二进制** - 每位十六进制拆成**4位二进制**,直接拼接 - 示例:A4₍₁₆₎ → 二进制 A→1010、4→0100 → **10100100₍₂₎** --- ## 五、八进制 ↔ 十六进制(间接转换) 两者无直接转换规则,需通过**二进制/十进制中转**,**推荐二进制中转(最快)** 1. **八进制 → 十六进制** 步骤:八进制→每位拆3位二进制→二进制从右4位一组→十六进制 示例:244₍₈₎→10100100₍₂₎→A4₍₁₆₎ 2. **十六进制 → 八进制** 步骤:十六进制→每位拆4位二进制→二进制从右3位一组→八进制 示例:A4₍₁₆₎→10100100₍₂₎→244₍₈₎ --- ## 六、核心口诀速记 1. 十进制转其他:**整数除基取余逆序,小数乘基取整顺序** 2. 其他转十进制:**整数按权正序加,小数按负权加** 3. 二↔八:**3位一组** 4. 二↔十六:**4位一组** 5. 八↔十六:**先走二进制** 学习交流公开阅读不需要登录登录后可以评论、收藏并同步学习进度。登录暂时还没有评论。
学习交流