进制转换

2/8/10/16/32/36 进制互转,BigInt 大整数不丢精度,支持 0x/0b 前缀、负数小数、原码反码补码与二进制位视图。

🔒 本地运行🔢 BigInt 精度
输入进制输出进制
255
十六进制 FF = 十进制 上方结果
2 进制 BIN
11111111
8 进制 OCT
377
10 进制 DEC
255
16 进制 HEX
ff
32 进制
7v
36 进制
73
二进制位视图 按 4 位分组,直观查看每个 bit
11111111
有效位数:8 bit · 字节数:1 B · 在无符号 64 位范围内
原码 · 反码 · 补码 计算机有符号数表示( 位)
位宽
表示方式二进制十六进制
原码00000000000000000000000011111111000000FF
反码00000000000000000000000011111111000000FF
补码00000000000000000000000011111111000000FF
负数的反码 = 原码符号位不变按位取反;补码 = 反码 + 1。补码让减法可以按加法处理,0 也只有一种表示。
进制转换规则
  • 任意进制 → 十进制:按位权展开求和。如 0xFF = 15×16 + 15 = 255;二进制 1010 = 1×8 + 0×4 + 1×2 + 0×1 = 10。
  • 十进制 → 任意进制:整数部分除基取余(逆序),小数部分乘基取整(顺序)。
  • 二 ↔ 八/十六:2 进制每 3 位对应 1 位八进制、每 4 位对应 1 位十六进制,可直接分组换算,所以十六进制是二进制的"缩写"。
  • 编程语言字面量:JavaScript 中 0x 开头为十六进制、0o 为八进制、0b 为二进制;本工具支持直接粘贴这些前缀。
  • 浮点数说明:小数在二进制下可能无限循环(如 0.1),转换结果按 12 位精度截断,存在微小误差属正常现象。

本工具能做什么

2/8/10/16/32/36 进制互转,BigInt 大整数不丢精度,支持 0x/0b 前缀、负数小数、原码反码补码与二进制位视图。

✓六进制互转:二进制 / 八进制 / 十进制 / 十六进制 / 32 进制 / 36 进制
✓BigInt 精确转换:超过 Number.MAX_SAFE_INTEGER 的大整数不丢精度
✓自动识别 0x / 0b / 0o 前缀,支持负数输入
✓二进制位视图:按 4 位分组可视化,逐位显示位权
✓原码 / 反码 / 补码:8 / 16 / 32 位宽下负数的机器表示
✓全进制对照表一次列全,⌨️ Ctrl+Enter 转换

适用场景

  • 开发调试时的二进制 / 十六进制互转
  • 处理雪花 ID 等大数不丢精度
  • 查看负数在固定位宽下的补码
  • 学习位运算时可视化二进制位

常见问题

为什么 0.1 + 0.2 不等于 0.3?

JavaScript 用 IEEE 754 双精度浮点,十进制 0.1 转二进制是无限循环小数,存储时被截断产生误差。涉及金额计算请先转成分(整数)运算,或用 BigInt / decimal 库。

多大的数会丢精度?

Number 超过 2^53 − 1(9007199254740991,约 9 千万亿)后无法精确表示,比如雪花 ID 直接 parseInt 就会变成错误值。本工具用 BigInt 处理,输入多长都精确。

补码是什么?为什么计算机用它存负数?

补码让加法器同时胜任减法:−1 的 8 位补码是 11111111,5 + (−1) 按位相加直接得到 4,无需额外减法电路。这也是为什么 8 位有符号数范围是 −128 ~ +127 而不是 ±127。

32 进制 / 36 进制有什么用?

36 进制用 0-9 加 A-Z 全部字母数字,是「最短的无符号大数表示」,常用于短链 ID、订单号压缩显示。如十进制 1234567890123456789 转 36 进制只要 12 位。

⚠️
免责声明
  • 本工具为纯前端实现,输入内容仅在你的浏览器本地处理,不上传、不存储于服务器。
  • 结果仅供开发调试参考。对于超长文本、特殊编码、非标准格式或极端边界输入,可能存在解析偏差或精度损失。
  • 请勿在本工具中处理生产环境密钥、个人敏感信息或涉密数据。因浏览器插件、剪贴板、共享设备等本站无法控制的环节导致的泄露,本站不承担责任。
  • 重要数据请自行备份并二次校验,勿将本工具输出直接用于生产环境。
  • 在法律允许的范围内,本站不对因使用或依赖本工具输出结果而产生的任何直接或间接损失承担责任。继续使用即表示你已理解并接受本声明。
发现结果有误?欢迎 反馈给我们,我们会尽快核实修正 · 详见 《隐私声明》