十进制在线转换器,一键换算二进制、十六进制、八进制
输入一个熟悉的十进制数,立刻得到它在计算机世界里的各种写法。支持超长数字逐位运算,考试验算、写代码查数都够用。
十进制 ↔ 其他进制换算器
默认预选「十进制 → 二进制」,下拉框可切换为任意进制组合。
十进制为什么是人类的「默认进制」
十个手指决定的计数习惯
十进制(Decimal)以 10 为基数,使用 0 到 9 十个符号,「满十进一」。主流观点认为它与人类有十根手指直接相关:掰手指计数是最原始的记录方式,数完十根就进一位。今天它几乎是所有日常场景——价格、身高、里程——的标准表达,也因此成了其他进制换算时最常用的「中转站」。
严格来说,十进制并没有什么数学上的特殊性,只是人类习惯的问题。计算机内部并不直接使用十进制,处理器做加减法时面对的全是二进制电平;我们在屏幕上看到的十进制数,是程序在显示层替我们翻译过的结果。理解「十进制只是众多进制之一」,是学透进位计数制的第一步。
十进制转二进制:除 2 取余,完整演算一遍
这是考试和面试里出现频率最高的一题。以 100 为例:
100 ÷ 2 = 50 …… 余 0
50 ÷ 2 = 25 …… 余 0
25 ÷ 2 = 12 …… 余 1
12 ÷ 2 = 6 …… 余 0
6 ÷ 2 = 3 …… 余 0
3 ÷ 2 = 1 …… 余 1
1 ÷ 2 = 0 …… 余 1
余数倒排 → 1100100,即 100 的二进制是 1100100
验算方法:1100100 = 64 + 32 + 4 = 100,与原数一致。熟练之后也可以用「凑 2 的幂」快速口算:找不超过原数的最大 2 的次方,逐级减去,减到哪一位就在哪一位写 1。
十进制转十六进制:除 16 取余,余数 10-15 写成 A-F
255 ÷ 16 = 15 …… 余 15(F)
15 ÷ 16 = 0 …… 余 15(F)
余数倒排 → FF,即 255 的十六进制是 FF
这个例子值得记住:255 = 2⁸ - 1,二进制是 8 个 1,十六进制正好两个 F。同理 65535 = FFFF、4294967295 = FFFFFFFF,记住这组对应关系,看内存上限、颜色值时都有用。
十进制小数的转换:乘 2 取整
整数部分走「除基取余」,小数部分则相反,用「乘基取整」:每次把小数部分乘以基数,取出整数部分作为一位,再对剩余小数重复。以 0.375 转二进制为例:0.375×2 = 0.75 取 0;0.75×2 = 1.5 取 1;0.5×2 = 1.0 取 1,小数部分归零,结果为 0.011。但要注意,像 0.1 这样的小数乘 2 永远不会精确归零,在二进制下是无限循环小数——这就是编程语言里浮点数比较要用误差范围而不能直接用等号的根本原因。
十进制 0 - 20 对照表
| 十进制 | 二进制 | 八进制 | 十六进制 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 17 | 10001 | 21 | 11 |
| 18 | 10010 | 22 | 12 |
| 19 | 10011 | 23 | 13 |
| 20 | 10100 | 24 | 14 |
十进制转换常见问题
十进制 100 转二进制是多少?
100 = 64 + 32 + 4,对应二进制 1100100。用除 2 取余法逐步演算也能得到同样结果,本页顶部转换器输入 100 可一键验证。
十进制转十六进制怎么算?
除 16 取余、余数倒排:余数为 10 到 15 时分别写成 A、B、C、D、E、F。例如 255 → FF、4096 → 1000。数值较大时先转二进制再按 4 位分组,往往比直接除 16 更不容易出错。
为什么 0.1 + 0.2 在编程里不等于 0.3?
因为计算机用二进制存储小数,而十进制的 0.1 在二进制下是无限循环小数(0.000110011…),存储时被截断产生误差。0.1 和 0.2 各自的近似值相加后与 0.3 的近似值并不完全相等,于是出现 0.30000000000000004 这类结果。这是二进制浮点数的固有特性,不是程序写错了。
十进制负数转其他进制怎么处理?
先对绝对值做常规转换,再按目标环境要求的规则处理符号:数学书写时直接加负号(如 -101101);计算机内部则使用补码表示,例如 8 位下的 -45 是 11010011。不同位宽(8/16/32 位)补码结果不同,转换前先确认位宽。