进制转换器
支持 2~36 进制任意互转,内置 BigInt 大数精确计算,十六进制 FF 与十进制 255 一键互换。学习计算机基础、调试程序、看内存地址都好用。
进制转换在二进制、八进制、十进制、十六进制之间换算整数。编程里十六进制常用于内存地址、颜色值与字节表示,二进制用于理解位运算与权限标志,八进制出现在文件权限(如 chmod 755)里。工具支持 2~36 任意进制,并用 BigInt 精确计算,超大整数不丢精度。
换算规则本身很简单:十进制转 N 进制用「除 N 取余、逆序排列」;而 2、8、16 进制同属 2 的幂,可以按位分组互转(一位十六进制等于四位二进制)。需要注意小数的表示方式在不同语言里口径不一,本工具聚焦整数精确换算。
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 在输入框填写待换算的数字,十六进制可直接写 a-f 字母。
- 选择它的原始进制(2~36)与目标进制;不确定时先用十进制核对一遍。
- 输入即时出结果,并同时列出 2/8/10/16 进制对照,便于交叉验证。
- 超大整数会完整显示位数,不会变成科学计数法。
计算原理与示例
进制转换通用方法
通用方法:十进制整数转 N 进制用「除 N 取余,逆序排列」。例如 255 转二进制:255÷2=127 余 1,不断除下去余数逆序得 11111111。
十六进制与二进制互转
十六进制与二进制互转可以「一位拆四位」:F = 1111,所以 FF = 11111111,不需要经过十进制。
超大整数精度说明
本工具使用 BigInt 精确计算,超过 Number.MAX_SAFE_INTEGER 的超大整数(如 2^100)也不会丢精度。
代码示例
JavaScript 进制互转(含大整数)
// 常规范围
parseInt("ff", 16) // 255
(255).toString(16) // "ff"
// 超过 Number.MAX_SAFE_INTEGER 用 BigInt
BigInt("0xffffffffffffffff") // 18446744073709551615n
BigInt("18446744073709551615").toString(16) // "ffffffffffffffff"
Shell 命令行里的进制换算
# 十六进制 → 十进制
printf "%d\n" 0xff
# 十进制 → 十六进制
printf "%x\n" 255
# 任意进制(bc)
echo "obase=16; 255" | bc
常见问题
为什么十六进制在编程里这么常用?
一位十六进制正好对应 4 位二进制,一个字节(8 位)用两位十六进制就能表示(如 0xFF = 255),比二进制短、比十进制直观,所以内存地址、颜色值、MAC 地址都用它。
二进制的小数怎么转换?
小数部分用「乘 2 取整」法,且很多十进制小数(如 0.1)在二进制下是无限循环小数,这正是浮点数误差的来源。本工具只处理整数转换以保证精确。
36 进制是怎么回事?
0~9 加上 26 个英文字母正好 36 个符号,所以最大可表达 36 进制。部分短链接服务就是用高进制把长 ID 压缩成短字符串的。
十进制转二进制怎么快速算?
用「除 2 取余、逆序排列」:不断用商除以 2 并记下余数,直到商为 0,再把余数倒着读。例如 13 → 1101(13÷2 余 1、6÷2 余 0、3÷2 余 1、1÷2 余 1,倒序即 1101)。
二进制和八进制、十六进制之间怎么转最方便?
用「分组法」直接转,不必经过十进制:二进制转八进制每 3 位一组、转十六进制每 4 位一组,反向则一位八进制拆成 3 位、一位十六进制拆成 4 位。例如 十六进制 FF = 11111111,八进制 377 = 11111111。
十六进制字母大写和小写有区别吗?
没有区别。十六进制里 A~F 与 a~f 表示同一数值,编程语言和配置文件两种写法都认。习惯上常量与内存地址用大写(0xFF),字符串输出和哈希值常用小写。
编程里的 0x、0b 前缀是什么意思?
那是不同语言表示进制的字面量前缀:0x 表示十六进制(0xFF = 255),0b 表示二进制(0b1010 = 10),0o 表示八进制。输入本工具时去掉前缀只留数字即可,以免前缀被当成非法字符。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。