进制转换

二进制、八进制、十进制、十六进制及任意进制互转。

二进制11111111
八进制377
十进制255
十六进制ff
目标进制(36)73

什么是进制转换?

进制转换工具用于把同一个数值在不同进制(数制)之间互相换算,常见支持二进制(Binary,逢二进一)、八进制(Octal,逢八进一)、十进制(Decimal,日常使用的逢十进一)、十六进制(Hexadecimal,逢十六进一,用 0-9 和 A-F 表示)以及自定义任意进制(如 2~36 进制)。 工具的核心是数值在不同“基数”下的位权展开与还原:例如十进制 255 换算成十六进制是 FF(15×16+15),换算成二进制是 11111111(8 个 1),本质上是同一个数量在不同计数规则下的不同书写形式,数值大小并未改变。

为什么使用进制转换?

典型场景:编程时看到十六进制颜色值、内存地址或权限位(如 chmod 里的 0755)想知道对应的十进制数值;调试网络协议或二进制文件格式时需要在二进制和十六进制之间来回核对;学习计算机基础课程时需要练习进制换算。 相比手动心算或查表,工具能一次性同时给出多个进制的结果,并支持大数(超出 JavaScript 安全整数范围)转换,避免大数值换算时因精度问题算错。

使用示例

十进制转十六进制颜色值

输入十进制 255,转换后得到十六进制 FF、二进制 11111111、八进制 377,正好对应网页里常见的颜色分量最大值 #FFFFFF 中的每一位。

换算文件权限

输入八进制 755(chmod 命令常见权限值),转换成二进制得到 111 101 101,对照三组权限位可知:所有者读写执行、组用户读执行、其他用户读执行。

二进制转十进制核对子网掩码

输入二进制 11111111(分段转换 IPv4 掩码的一段),转成十进制得到 255;四段都是 11111111 加一段 00000000,对应 255.255.255.0,即常见的 /24 子网掩码。

使用提示

换算网络地址或权限位时建议按二进制逐位核对,比直接记结论更不容易出错,尤其是子网掩码和 chmod 权限这类每一位都有具体含义的场景。

常见问题

支持负数吗?
支持,输入以 - 开头即可,如十进制 -255。
为什么大数字也能精确转换?
内部使用 BigInt 进行任意精度整数运算,不会像普通 Number 那样在超出安全整数范围后丢失精度,但不支持小数。
数据会上传吗?
不会。进制转换全部在浏览器本地用 JavaScript 计算完成。
支持负数和小数吗?
通常仅支持非负整数的精确进制转换;小数在非十进制下的表示涉及无限循环小数等复杂情况,多数工具不支持或仅做近似处理,如需精确计算建议只对整数部分转换。
能转换很大的数字(超过几十亿)吗?
工具内部通常使用大数(BigInt)运算而非普通浮点数,可以正确处理远超 JavaScript 默认安全整数范围(2^53)的大数值,避免出现精度丢失导致结果错误。
十六进制里的字母大小写有区别吗?
数值上没有区别(F 和 f 都表示 15),只是书写习惯不同,工具通常允许输入大小写混合,输出时按统一的大写或小写风格展示。
为什么输入 "008" 转换报错或结果异常?
部分实现会把以 0 开头的数字误判为八进制字面量,建议明确在界面上选择输入的进制,而不是依赖数字前缀猜测。
和“编码”是一回事吗?
不是,进制转换只是同一个数值的不同书写形式,数值本身不变;编码(如 Base64、URL 编码)通常是把数据按某种规则转换成另一种表示形式,两者概念不同,不能混用来做加密或编码用途。

相关工具

相关教程

← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。