本文目录导读:

进制转换的核心原理是“按权展开”(其他进制转十进制)和“除基取余”(十进制转其他进制),下面我用最通俗的方式,把常用的几种转换方法拆解给你看。
核心概念:理解“权”和“基数”
- 基数:就是这种进制有多少个数字符号。
- 二进制:0和1 → 基数 = 2
- 八进制:0-7 → 基数 = 8
- 十进制:0-9 → 基数 = 10
- 十六进制:0-9,A-F(A=10,B=11...F=15)→ 基数 = 16
- 权:就是每个数字位置代表的“重量”,从右往左数,第N位的权就是 基数 的 (N-1) 次方。
- 十进制的
123,右边的3在个位(权=10⁰),中间的2在十位(权=10¹),左边的1在百位(权=10²)。
- 十进制的
实战技巧与工具
手动计算(理解原理)
其他进制 → 十进制(按权展开相加)
- 二进制转十进制:
1011(二进制) = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11 (十进制) - 八进制转十进制:
27(八进制) = 2×8¹ + 7×8⁰ = 16 + 7 = 23 (十进制) - 十六进制转十进制:
1F(十六进制) = 1×16¹ + 15×16⁰ = 16 + 15 = 31 (十进制)
十进制 → 其他进制(除基取余法)
- 十进制转二进制:把十进制数不断除以2,记录余数,最后将余数从下往上倒序排列。
- 例:把
19转二进制 19 ÷ 2 = 9 余 1 9 ÷ 2 = 4 余 1 4 ÷ 2 = 2 余 0 2 ÷ 2 = 1 余 0 1 ÷ 2 = 0 余 1 → 倒序排列:10011(二进制)
- 例:把
- 十进制转八进制:同理,不断除以8,记录余数(0-7)。
- 十进制转十六进制:同理,不断除以16,记录余数(0-15,10用A,11用B...15用F)。
二进制与八进制、十六进制的快速互转(分组法)
- 二进制 → 八进制:从右向左,每3位二进制数为一组,直接转换为一位八进制数。
- 例:二进制
11010111→ 分组:11 010 111→ 补0:011 010 111→ 每组转换:3 2 7→ 八进制:327
- 例:二进制
- 二进制 → 十六进制:从右向左,每4位二进制数为一组,直接转换为一位十六进制数。
- 例:二进制
11010111→ 分组:1101 0111→ 每组转换:13 7→ 十六进制:D7
- 例:二进制
- 八进制/十六进制 → 二进制:反过来,每一位展开成3位(八进制)或4位(十六进制)即可。
使用工具(高效准确)
对于日常使用,直接使用工具是最快、最不容易出错的方式。
-
系统自带计算器(Windows/macOS)
- Windows:打开“计算器”APP → 点击左上角“☰” → 选择“程序员”模式,可以选择HEX(十六进制)、DEC(十进制)、OCT(八进制)、BIN(二进制),输入数字会自动转换。
- macOS:打开“计算器”APP → 点击顶部菜单栏“显示” → 选择“程序员”。
-
在线转换网站
- 搜索 “进制转换器” 可以找到很多在线工具,tool.chinaz.com 或 rapidtables.com,它们通常支持多种进制(包括三进制、五进制等非常见进制)。
-
编程语言
-
Python:
# 其他进制转十进制 print(int("1011", 2)) # 输出 11 (二进制转十进制) print(int("1F", 16)) # 输出 31 (十六进制转十进制) # 十进制转其他进制 print(bin(19)) # 输出 0b10011 (二进制,前面的0b是前缀) print(hex(31)) # 输出 0x1f (十六进制) print(oct(19)) # 输出 0o23 (八进制) -
JavaScript:
// 其他进制转十进制 console.log(parseInt("1011", 2)); // 输出 11 console.log(parseInt("1F", 16)); // 输出 31 // 十进制转其他进制 console.log((19).toString(2)); // 输出 '10011' console.log((31).toString(16)); // 输出 '1f'
-
避坑指南
- 字母大小写:十六进制中,
A-F不区分大小写,但建议统一使用大写(如0x1F)。 - 前缀标识:
- 二进制常用
0b前缀(如0b1011,编程中常见)。 - 十六进制常用
0x前缀(如0x1F)。 - 八进制常用
0前缀(如027),但有些场合会用0o或0O。
- 二进制常用
- 负数和小数:上面的方法默认针对正整数,负数通常用补码表示,小数则用乘基取整法,处理起来稍复杂一些,但这超出了基础转换的范畴。
一句话记住
- 转十进制:按权展开相加(
1011= 1×8+0×4+1×2+1×1 = 11)。 - 十进制转其他:除以基数取余,倒序排列(19除以2取余,倒序得
10011)。 - 终极偷懒法:打开电脑计算器的“程序员”模式。
你可以试着用数字验证一下: 1101 (二进制) → 按权展开 = 8+4+0+1 = 13 (十进制) → 用计算器/代码验证。
标签: 进制转换
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。