数据与格式转换

进制转换

在浏览器内把同一个整数在 2 到 36 之间的任意源进制和任意目标进制之间换算。源进制用一个基数输入框设定,可以选择是否自动识别 0x、0o、0b 等前缀。目标进制默认列出二、八、十、十六这四种最常用的进制,也可以随时增删任意基数。位视图标签下还提供可交互比特网格、位统计、8 到 64 位二补码视图和大端小端字节序排列,适合位运算调试、协议字段排查、嵌入式寄存器对照、算法练习和数据库主键查看。整个流程都在本地完成,输入不会上传。

  • 源进制和目标进制都可在 2 到 36 之间任意选择
  • 默认列出 2、8、10、16 进制结果,每一行都可以删除,也能即时添加任意基数
  • 位视图里点击比特即时翻位,源数值会同步更新
  • 提供 8、16、32、64 位二补码视图和大端、小端字节序排列
  • 使用 BigInt 计算,64 位以上整数和 Snowflake、UUID 高位都不会被截断
工具/进制转换

开启后,0x、0o、0b、# 前缀会覆盖此处的基数。

允许 0 到 9、a 到 z 字符,以及空格、下划线分组与最前面的负号。

8
2 进制8 进制10 进制16 进制
添加目标进制

可任意增删,至少保留一个;每个基数以 N 进制 形式展示。

2 进制
1111 1111
8 进制
377
10 进制
255
16 进制
ff
十进制255
二进制位长8
快捷操作

功能简介

同一个整数在任意两个进制之间换算,常常出现在调试位运算、读寄存器、看协议二进制、对照设计文档和复习算法题这些场景。把多目标进制并排、可交互比特、二补码与字节序集中到一个面板,能显著减少在多个网页和计算器之间来回切换的成本。

  1. 01

    源进制和目标进制都可任意

    源进制和目标进制都可以是 2 到 36 之间的任意整数。默认列出二、八、十、十六这四种最常用的进制,也可以随时把 7、12、20、36 这类不常见的基数加进来。

  2. 02

    目标进制按需增删

    只看你真正关心的进制:不需要的可以直接删除,需要的随时再添加。每个目标进制都会随输入即时更新。

  3. 03

    可交互的比特网格

    在位视图中把数值按位平铺,每个比特都可以点击翻转,源输入会同步改写。比手算掩码再回头改输入要直接得多。

  4. 04

    8 到 64 位二补码视图

    在位视图里选择 8、16、32、64 位之后,工具会同时给出无符号值与有符号值,对照寄存器手册和协议字段尤其方便。

  5. 05

    大端小端字节序预览

    按当前位宽把无符号值切成字节,分别按大端高位在前和小端低位在前展示,适合协议头、文件格式和跨架构内存布局排查。

  6. 06

    本地处理,输入不外传

    解析、换算和比特操作全部在浏览器内进行,可以放心粘贴未公开的协议字段、内部寄存器值和调试快照。

如何使用

从设置源进制到管理目标进制、再到点位调试,整个过程都在一个面板内完成。

  1. 01

    在左侧的源进制里设置一个 2 到 36 之间的基数,也可以打开识别 0x / 0o / 0b 前缀,让前缀直接决定基数。

  2. 02

    在数值输入里贴入数字,工具会即时校验是否符合当前进制。

  3. 03

    在结果标签下,常用的 2、8、10、16 进制已经默认列出;按需要在添加目标进制旁边的输入框里填入基数后点加号,每个 chip 上的叉号可以一键移除。

  4. 04

    切到位视图标签,点击比特可翻位;选择 8、16、32 或 64 位之后,还能查看二补码以及大端小端排列。

  5. 05

    在结果行里用复制按钮取走规范化后的值,不需要再手动剥前缀、补 0 或调整大小写。

功能说明

一个面板覆盖任意进制换算、位长查看、前缀格式化、可视化位调试和字节序排查,省去在多个网页计算器与位运算工具之间反复切换的麻烦。

  • 源进制和目标进制都支持 2 到 36 之间的任意基数
  • 默认列出 2、8、10、16 进制结果,可随时增删任意基数
  • 可交互比特网格,点击翻位会同步改写源输入
  • 位统计:置位数、前导零、尾随零和最高有效位一目了然
  • 8、16、32、64 位二补码视图,自动给出无符号与有符号解释
  • 大端、小端字节序并排预览,便于协议头与跨架构排查
  • 打开识别 0x / 0o / 0b 前缀后,可读取 0x、0o、0b、# 等常见前缀
  • 使用 BigInt 计算,避免 64 位以上整数出现浮点误差
  • 可输入和显示负数,使用最前面的负号表示符号
  • 可一键切换大写字母、附加前缀和按位分组三种显示选项
  • 复制按钮按行独立,只取你真正需要的那个值
  • 完全在浏览器本地运行,调试中的协议字段和内部数据不会上传

适合哪些场景

只要工作中出现同一个数字需要在多种进制或位视图之间反复切换,这个工具就能让步骤更短,也更不容易出错。

  1. 位运算与掩码调试

    把十进制权限值或状态位展成二进制,逐位检查哪几位被打开,必要时直接点位翻转看变化,再对照代码中的 and、or、xor 操作。

  2. 寄存器与嵌入式开发

    把寄存器手册中的 0x 值展开成二进制,开启 8、16 或 32 位二补码视图,看清每一位的语义与有符号解释。

  3. 协议字段与字节序排查

    把抓包或日志里的十六进制字段还原成二进制和十进制,并用大端、小端预览验证字节顺序是否符合协议规范。

  4. 颜色与样式调整

    在十六进制 RGB 与十进制通道值之间互转,配合设计 token 检查颜色是否被正确表达。

  5. 算法题与刷题

    解决进制转换、位计数、状态压缩等题目时,借助比特网格、置位数和前导零信息快速验证手算结果。

  6. CTF 与逆向分析

    把字符串或字节序列在二、十六、十进制之间切换,并按大端、小端排列查看 dump、shellcode 与文件头结构。

  7. 数据库与 ID 排查

    查看 Snowflake、UUID 高位、自增 ID 或位掩码字段时,把数据库里的整数展开到二进制看清结构。

  8. 教学与文档演示

    在讲解二补码、字节序、原码反码补码或进制转换时,提供一个稳定、可复制、可交互的实时演示面板。

延伸阅读

把接口返回里的整数字段挑出来确认完进制后,可以继续用 JSON 格式化 检查 JSON 整体结构。如果你正在排查的是签名或文件指纹相关的十六进制值,可以再用 哈希生成 重新计算一次摘要做对照。需要把十六进制 RGB 转换成 CSS 其他写法时,也可以接着用 颜色转换器 把颜色继续展开到 RGB、HSL、OKLCH 等格式。

使用建议

进制换算本身很确定,但把结果用到代码、文档、寄存器手册和协议字段里时,最好让格式与上下文保持一致,否则团队成员容易在沟通时产生误解。

  • 团队对外接口、文档、配置和测试用例使用统一的进制风格,例如位掩码用十六进制、纯计数用十进制,避免混用造成误读。
  • 在代码评审时,对位运算和掩码逻辑同时附上二进制注释,让审阅者不用心算就能看出每一位的含义。
  • 调试寄存器值时,把对应的位含义写在注释或文档里,下一个维护者会感谢这一行注释。
  • 处理 64 位以上的 ID 或位字段时,优先使用 BigInt 或字符串,避免在脚本中再被默默截断成 Number。
  • 在文档中展示十六进制时统一大小写风格,全大写或全小写都可以,但不要混着写,不一致会在 diff 中产生噪音。
  • 截图给协作方看时附上当前的源进制和目标进制说明,避免对方看到 0b1010 又误以为是十进制 1010。
  • 排查跨架构数据时,把使用的字节序和位宽明确写出来,避免同一段十六进制在不同读者眼里解析出不同的值。

边界与注意事项

工具专注在把一个整数在任意进制之间换算与可视化上,不会替你完成更复杂的数据语义和位语义解析。

  • 工具只处理整数。带小数的二进制、浮点位模式和 IEEE 754 解析不在覆盖范围内。
  • 默认负数采用最前面的负号写法表示;若需要查看寄存器层面的补码位串,请在位视图里选择 8、16、32 或 64 位二补码位宽。
  • 识别的前缀是 0x、0X、0o、0O、0b、0B 与 #,带 H、h 后缀的十六进制写法不会被自动识别,需要先手动改写。
  • 基数限定在 2 到 36 之间,超出这个范围的自定义编码,例如 Base58、Base62、Base64,请使用对应的专门工具。
  • 输入中允许有空格、下划线和分组分隔符;其他不属于当前进制的字符会被视为输入错误并提示。
  • 工具不验证数值是否符合具体业务规则,比如某个寄存器只允许低 5 位有效,需要业务层再校验。
  • 工具不会替你判断这个值用哪个进制最合适,源进制和需要复制的目标进制都由你来决定。

常见问题

这些是在调试、协议排查、嵌入式开发和算法练习中使用进制转换时最常见的问题。

源进制和目标进制都可以是任意的吗?

可以。两者都允许设置为 2 到 36 之间的任意整数。源进制只有一个,目标进制可以同时存在多个,并随时增删。

默认会显示哪些目标进制?

默认列出 2、8、10、16 这四种最常用的进制。如果你只关心其中一两种,可以删掉其他;如果还需要别的,比如 7、12、20、36 进制,在添加目标进制旁边的输入框里填入基数再点加号即可。

比特网格里点击翻位会发生什么?

工具会用 XOR 翻转对应位,再把新数值按当前源进制重新格式化,写回到输入框。所有目标进制结果、位统计和二补码视图都会同步更新。

为什么负数需要先选择二补码位宽才能点位?

负数在不同位宽下的补码位串不同,-1 在 8 位、16 位、64 位下看起来完全不一样。先把位宽决定下来,单个比特代表什么才是唯一确定的,所以位宽设为关闭时翻位会暂时禁用。

是否支持 0x、0o、0b 这些前缀?

支持。在源进制旁边把识别 0x / 0o / 0b 前缀打开后,0x、0X、0o、0O、0b、0B、# 等前缀会自动覆盖你手动指定的基数。输出端也可以选择是否给结果附加前缀。

可以输入负数吗?

可以。在数值前面加一个负号即可。各个目标进制的结果也会在最前面带上负号。如果想看具体位宽下的补码位串,请在位视图里选择 8、16、32 或 64 位。

可以处理超过 64 位的大整数吗?

可以。内部使用 BigInt 计算,不会出现 JavaScript Number 在 2 的 53 次方以上的精度丢失问题,128 位、256 位甚至更长的整数也能正确转换。

大端和小端是怎么切字节的?

工具按当前选择的二补码位宽把无符号值切成相应数量的字节,大端按高位在前展示,小端按低位在前展示。两种排列并排给出,方便和协议规范或调试器中的内存视图直接比对。

位统计里的前导零和尾随零分别表示什么?

在当前显示的位宽下,从最高位开始连续为 0 的位数算作前导零,从最低位开始连续为 0 的位数算作尾随零。常用于判断字段对齐、找最低 1 位和优化掩码。

能不能按位分组显示?

可以。打开按位分组开关后,二进制每 4 位一组、十六进制每 2 位一组进行分隔显示,便于和寄存器图、协议表对照。

输入会被发送到服务器吗?

不会。解析、换算、比特操作全部在浏览器本地完成,可以放心粘贴未公开的协议字段、内部寄存器值和调试快照。

可以转换分数或带小数的数值吗?

当前只支持整数。带小数的二进制、浮点位模式和 IEEE 754 解析不在覆盖范围内,建议使用专门的浮点位查看工具。

更多相关工具

换算完成后,可以继续在数据与格式转换、安全与设计相关工具中处理整体结构、签名摘要或颜色表达。