在线进制转换器:看懂计算机的“语言”
一款程序员进制换算器,可在十六进制(HEX)、十进制(DEC)、八进制(OCT)与二进制(BIN)之间即时转换整数。选择输入进制后,使用适配当前进制的屏幕键盘输入,即可同时查看四种进制的结果;可复制任意数值或从剪贴板粘贴数字,全部在浏览器本地处理。
进制转换器使用说明
在 HEX、DEC、OCT 和 BIN 之间即时转换
进制转换器可在你输入时于二进制(基数 2)、八进制(基数 8)、十进制(基数 10)和十六进制(基数 16)之间转换数字。选择输入进制,使用屏幕键盘(仅启用对该进制有效的数字)输入数值,其余三行会即时更新为等值结果。它是理解“计算机如何数数”的直观教具,也是程序员的日常工具。
01 转换一个数字
选择要输入的进制(HEX、DEC、OCT 或 BIN),然后输入数字。键盘会自适应:在 HEX 模式下可使用字母 A–F;在 OCT 模式下只有 0–7 可用;在 BIN 模式下只有 0 和 1。输入时,DEC、HEX、OCT 和 BIN 只读行都会显示转换后的值。切换输入进制会保留数值,并允许你在新进制下继续编辑。
使用 ⌫ 删除最后一位数字,使用 AC 重置为零。数值可以很大;转换器使用整数运算,并显示每种进制下的精确表示。
也可以把一串数字直接粘贴进去(Ctrl/Cmd+V),工具会自动剔除当前进制下不合法的字符并去掉前导零。每一行结果旁都有独立的复制按钮,方便你直接取走 HEX 颜色码或二进制串。
02 进制到底是什么
进制是“满几进一”的计数规则。十进制满十进一,用 0–9;二进制满二进一,只用 0 和 1;十六进制满十六进一,用 0–9 加 A–F(A=10,F=15)。同一个数在不同进制下只是写法不同:十进制的 255,二进制写作 11111111,十六进制写作 FF,八进制写作 377。
其他进制转十进制用“按权展开”:每一位乘以其位权(基数的幂)再相加。例如 1011(2) = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 11。十进制转二进制则用“除二取余、逆序排列”:13 连除 2 得余数 1、0、1、1,倒读即 1101。
二进制与十六/八进制之间的互转最快:因为 16 = 2⁴、8 = 2³,把二进制每四位(或三位)分一组,每组直接查表换一位即可。例如 1010 1111 分组为 1010|1111,即 AF。
03 为什么计算机非用二进制不可
根本原因是物理实现:电压高/低、开关通/断、磁极南/北,天然的二态器件最容易制造和稳定区分。如果让电路区分十个电压等级,一点噪声就会误判;只区分两个状态,抗干扰能力极强,这也是数字系统比模拟系统可靠的根本原因。
1937 年香农在硕士论文中证明布尔代数可用开关电路实现,二进制从此与逻辑运算统一在同一套电路上——“与、或、非”既能做判断也能做算术。1946 年 ENIAC 还是十进制机器,此后几乎所有计算机都转向了二进制。
有趣的是,二进制记数法最早由莱布尼茨在 1703 年系统阐述,他声称受到《易经》六十四卦阴阳排列的启发。一个纯粹的数学构想,两百多年后成为整个信息时代的基石。
04 十六进制与八进制的现实应用
一位十六进制恰好对应四位二进制,一个字节(8 位)用两位十六进制即可写完:11111111 = FF。它把冗长的二进制缩写 4 倍又不破坏对应关系,因此内存地址、颜色码(#FF8000)、MAC 地址、Unicode 码点清一色用十六进制。
八进制每位对应三位二进制,最著名的现代应用是 Unix/Linux 的 chmod 权限:755 表示 rwx r-x r-x——每位八进制数字拆开成三位二进制,正好对应读(4)、写(2)、执行(1)三个开关。C 语言中以 0 开头的整数字面量也是八进制(010 = 8),这是经典的面试陷阱。
值得知道的是,八进制的流行源于早期小型机 12/18/24 位的字长(恰好被 3 整除);现代 8/16/32/64 位字长被 4 整除,十六进制因此后来居上。今天八进制基本只活在权限位和历史代码里。
Display & clipboard
- Copy (display)复制当前输入的数字(按当前进制)到剪贴板。
- Paste (display)从剪贴板粘贴数字;会自动剔除当前进制下不合法的字符并去除前导零。也可使用 Ctrl/Cmd+V。
- Copy (per row)每个输出行(HEX/DEC/OCT/BIN)都有独立的复制图标,可直接复制对应表示。
输入进制选择器
- HEX将输入设为十六进制(基数 16);启用 A–F 键。
- DEC将输入设为十进制(基数 10);数字 0–9。
- OCT将输入设为八进制(基数 8);数字 0–7。
- BIN将输入设为二进制(基数 2);只有 0 和 1。
键盘
- 0–9数字键;对所选进制无效的数字会被禁用。
- A–F十六进制字母,仅在 HEX 模式下显示(值 10–15)。
- ⌫删除最后输入的一位数字。
- AC将数值清除归零。
输出行
- HEX基数 16 下的等值。
- DEC基数 10 下的等值。
- OCT基数 8 下的等值。
- BIN基数 2 下的等值。
- 键盘会将对当前进制无效的数字置灰,防止非法输入。
- 在显示数值时切换进制选择器,可在另一进制下重新解读/编辑它。
- 验证手算:先把十进制除二取余转成二进制,再用本工具对照,最容易发现分组错误。
- 二进制转十六进制时从右往左每四位一组,不足四位左边补零。
- 记忆常用锚点:FF=255、100(2)=4、10(16)=16、777(8)=511,换算会快很多。
- 做位运算或补码练习时,此处显示的精确二进制表示是权威依据。
- chmod 权限速查:读=4、写=2、执行=1,相加即得该位八进制值(如 rwx=7)。
- 粘贴大段数字时工具会自动过滤非法字符,但仍建议核对前导零是否被正确去除。
我们日常用十进制数数,计算机却只认识 0 和 1。这个工具在十六进制(HEX)、十进制(DEC)、八进制(OCT)与二进制(BIN)之间实时互转,帮你把“人话”和“机器话”互译。选一种进制输入,其余三种同步显示,编程、网络、数字电路的场景都用得上。
什么是进制
进制就是“满几进一”的计数规则。十进制满十进一,用 0–9 十个符号;二进制满二进一,只用 0 和 1;十六进制满十六进一,用 0–9 加 A–F 共十六个符号。同一个数在不同进制下只是写法不同:十进制的 255,写成二进制是 11111111,十六进制是 FF,八进制是 377。
一段简史:从莱布尼茨到现代芯片
二进制记数法由莱布尼茨在 1703 年系统阐述,他受《易经》六十四卦排列的启发,认为 0 和 1 可表示万物。两百多年后,香农在 1937 年的硕士论文中证明布尔代数可以用开关电路实现,二进制由此成为数字电路的天然语言。1946 年 ENIAC 还是十进制机器,而此后几乎所有计算机都转向了二进制。
为什么计算机非用二进制不可
根本原因是物理实现简单可靠:电压高/低、开关通/断、磁极南/北,天然的二态器件最容易制造和区分。如果让电路区分十个电压等级,一点噪声就会造成误判;只区分两个状态则容错性极强。代价是写起来冗长——于是工程师发明了十六进制和八进制作为二进制的“缩写”。
十六进制:程序员的最爱
一位十六进制数恰好对应四位二进制数(2⁴ = 16),所以一个字节(8 位)用两位十六进制就能写完:11111111 = FF。于是内存地址、颜色码(#FF8000)、MAC 地址、Unicode 码点清一色用十六进制表示——比二进制紧凑 4 倍,又比十进制更贴合字节边界,这就是它统治编程世界的原因。
八进制与 Unix 文件权限
一位八进制数对应三位二进制(2³ = 8)。Unix/Linux 的 chmod 权限是八进制最著名的应用:755 表示 rwx r-x r-x——每一位拆开成三位二进制,分别对应读(4)、写(2)、执行(1)三个开关。早期小型机字长是 12/18/24 位,恰好被 3 整除,八进制因而流行;今天它主要活在权限位和 C 语言的 0 前缀字面量里。
手算转换的方法
其他进制转十进制用“按权展开”:1011(2) = 1×2³+0×2²+1×2¹+1×2⁰ = 11。十进制转二进制用“除二取余、逆序排列”:13 不断除 2 得余数 1、0、1、1,倒过来就是 1101。二进制与十六/八进制互转最快——每四位(或三位)一组直接查表。掌握这三种方法,笔试手算题不用慌。
怎么用本工具
先用顶部选择器选定输入进制(HEX/DEC/OCT/BIN),再用屏幕键盘或实体键盘输入数字,其余三种进制的等值会实时更新。十六进制模式下自动出现 A–F 键;对当前进制非法的按键(如二进制下的 2–9)会被禁用,杜绝输入错误。切换输入进制会保留数值,方便你以另一种进制继续编辑。
负数和补码:一个延伸话题
本工具处理非负整数。计算机表示负数普遍使用“补码”:8 位下 −1 写作 11111111,与 255 同一段比特,区别在于 CPU 如何解读。补码的妙处是让加减法共用同一套电路。想深入的话,可以在本工具中观察 255 的二进制,再想想它为什么也能表示 −1。
数值范围说明
转换基于 JavaScript 的 Number 类型,在安全整数范围内(绝对值不超过 2⁵³−1,约 9×10¹⁵)结果完全精确。超过此范围的超大整数可能丢失末位精度,这在所有基于网页的进制工具中都一样;日常编程涉及的 32/64 位数值远在安全线之内。
典型使用场景
程序员换算颜色值、位掩码和内存地址;学生做数字逻辑和计算机组成原理作业;网络工程师查看 MAC 地址与子网掩码;嵌入式开发者读写寄存器值;运维理解 chmod 755 的含义。凡是要和机器底层打交道的地方,进制转换都是日常动作。
隐私说明
全部换算在本地 JavaScript 中完成,输入的数字不会发送到服务器,也不写入历史记录。可以放心粘贴内存地址、哈希片段等敏感数值。
常见问题
Q支持哪些进制?
十六进制(HEX,基数 16)、十进制(DEC,基数 10)、八进制(OCT,基数 8)与二进制(BIN,基数 2)。输入任一进制的数,其余三种表示实时同步更新。
Q为什么计算机用二进制而不用十进制?
因为电子元件最容易稳定地区分两种状态(高/低电平),二进制电路简单、抗噪声、容错强。若用十进制,需要区分十个电压等级,稍有干扰就会出错。二进制配合布尔代数,还让逻辑运算和算术运算统一在同一套电路上。
Q十六进制为什么用 A–F?
十六进制需要 16 个数字符号,0–9 只有十个,于是借用字母 A、B、C、D、E、F 依次表示 10–15。例如 FF 就是 15×16+15 = 255。大小写均可,本工具统一显示大写。
Q为什么程序员偏爱十六进制?
因为 16 = 2⁴,一位十六进制恰好对应四位二进制,一个字节(8 位)用两位十六进制即可完整表示。它把冗长的 11111111 缩写成 FF,又不破坏与二进制的对应关系。内存地址、颜色码、Unicode 码点因此都采用十六进制。
Q八进制现在还有什么用?
最著名的是 Unix/Linux 文件权限:chmod 755 中每位八进制数字对应读(4)、写(2)、执行(1)三个权限位。此外 C 语言以 0 开头的整数字面量是八进制(如 010 = 8),这也是常见面试陷阱。除此之外八进制在现代计算中已较少使用。
Q十进制怎么手工转二进制?
用“除二取余法”:把十进制数不断除以 2,记下每次的余数,直到商为 0,再把余数从后往前排列。例如 13:13÷2 余 1,6÷2 余 0,3÷2 余 1,1÷2 余 1,倒序得 1101。反向验证:1×8+1×4+0×2+1×1 = 13。
Q二进制和十六进制怎么快速互转?
以小数点为界,把二进制每四位分一组,每组直接换成一位十六进制即可。例如 1010 1111 分成 1010|1111,即 A|F,得 0xAF。反过来把每位十六进制展开成四位二进制。八进制同理,每三位一组。
Q为什么有些按键是灰色的?
对当前输入进制非法的按键会被禁用:八进制下 8、9 不可用,二进制下 2–9 和字母都不可用。这是防止输入非法数字的保护机制,切换到对应进制后按键会自动解禁。
Q能转换负数或小数吗?
本工具面向非负整数。负整数在计算机里以补码存储(8 位下 −1 = 11111111),需要先约定位宽才能讨论其进制形式;小数的二进制表示涉及 IEEE 754 浮点格式,属于另一个话题。大多数日常编程场景用的都是非负整数转换。
Q能处理多大的数?
在 JavaScript 安全整数范围(不超过 2⁵³−1,约 9×10¹⁵)内完全精确。这覆盖了全部 32 位和 64 位无符号整数以外相当大的区间,常规编程和教学绰绰有余。超出范围的超大数可能出现末位精度损失。
Q输入的值会被保存吗?
不会。换算完全在浏览器中运行,不上传服务器、不写入历史,粘贴敏感数值(如内部地址)也无需担心。