进制转换怎么算:二/八/十/十六进制互转、大数与位宽实测

一次算出四种进制,顺便看位宽和字节数,本地计算不上传

看代码遇到 0xFF、配 Linux 权限碰到 755、调接口看到一串二进制掩码,第一反应都是"这到底是十进制的几"。手算要按权展开,位数一多就容易错。

这篇用 NBTools 的进制转换工具讲清楚:怎么在二/八/十/十六进制之间互转,输入时能偷哪些懒,以及超过 JavaScript 安全整数的大数怎么处理。工具在浏览器本地计算,内容不上传服务器。

一次算出四种进制

先顶部选"从哪种进制输入",再填入数值,下方会同时列出四种进制的结果,每行右侧有复制按钮——不用反复切换、反复算。

场景输入十进制结果说明
颜色值FF(十六)255常见于 CSS / 位图通道
Linux 权限755(八)493rwxr-xr-x 的权限掩码
位掩码1010 1101(二)173带空格也能正常识别
容量换算1024(十)0x400十六进制看内存地址更直观

输入能偷的懒:空格、下划线、0x 前缀

从别处复制来的数字常常带着分隔符或前缀,手工清理很烦。本工具会自动忽略这些干扰字符:

  • 空格 / 下划线 / 逗号:会被自动剔除,所以 1010 1101、1_000_000、1,024 都能直接粘贴。
  • 进制前缀:输入非十进制时,开头的 0x(十六)、0o(八)、0b(二)会被自动去掉,0xFF 直接粘贴即可。
  • 大小写:十六进制字母不区分大小写,ff 和 FF 一样,输出统一为大写。

注意:一旦输入了当前进制以外的字符(比如十进制里出现字母),会直接提示"不是合法的十进制数字",不会给出错误结果。

大数也能转:不受 JS 安全整数限制

很多人用浏览器控制台或随手写的脚本做进制转换,会遇到一个坑:JavaScript 的 Number 只能安全表示到 2⁵³−1(9007199254740991),再大就开始丢精度,转出来的十六进制是错的。

本工具底层用大整数运算库(big-integer),不做浮点近似,因此像下面这种远超安全范围的数也能准确互转:

  • 123456789012345678901234567890 这类几十位的数,四种进制结果都精确。
  • 哈希值、长整型 ID、加密场景里的大数,不会因为精度丢失而对不上。

位宽与字节数有什么用

结果区底部会显示"位宽 N 位 · 约 M 字节"。位宽就是这个数写成二进制需要多少位,字节数是位宽除以 8 向上取整。这两个数在以下场景很实用:

  • 估存储空间:一个 ID 位宽 64 位 → 8 字节,据此判断用 BIGINT 还是 INT。
  • 判断溢出:位宽超过 32 位时,放进 32 位整型的字段就会溢出,需要换更大类型。
  • 设计协议:做二进制协议或位运算时,先确认数值落在几位以内。

另外工具还提供"填入当前时间戳"按钮,一键把当前以秒为单位的 Unix 时间戳填进十进制输入框,方便你看它对应的十六进制与位宽。

常见问题

负数怎么转

直接带负号输入即可,例如十进制 -255 会得到十六进制 -FF。位宽按绝对值计算(-255 的位宽是 8 位),符号单独保留。

0xFF 这样的前缀要手动删吗

不用。选择"从十六进制输入"后,开头的 0x(以及八进制的 0o、二进制的 0b)会被自动忽略,整串粘贴进来就行。

755 为什么是八进制

755 是 Linux/Unix 文件权限的写法,按八进制理解时等于十进制的 493,对应"拥有者可读可写可执行、同组和其他人可读可执行"。要算它,请切到"从八进制输入"再填 755。

输入带空格或逗号会报错吗

不会。空格、下划线、逗号会被自动剔除,1,024 等价于 1024,1010 1101 等价于 10101101。

转出来的十六进制是小写还是大写

统一输出大写,方便直接用在代码或文档里;输入时用小写也不影响。

数据会上传吗

不会。转换在浏览器本地完成,输入内容不上传服务器。

工具入口

进制转换立即使用 →

二进制/八进制/十进制/十六进制互转,支持大数与负数

作者:NBTools · 更新于 2026年9月13日 · 阅读约 5 分钟