在线数字进制转换工具,支持 2-36 进制之间的任意数字转换
使用场景
学计算机基础或者做底层开发的人,进制转换是每天的必修课。你写代码的时候遇到一个权限值 0777,这是八进制;看到内存地址 0xFFA3,这是十六进制;子网掩码 255.255.255.0 转成二进制是 11111111.11111111.11111111.00000000。这些数字之间的转换,大脑算一下也不是不行,但容易出错,特别是大数字或者带小数的场景,在线工具算一下又快又准。
做嵌入式开发和硬件工程师也是使用大户。你在配置寄存器的位(bit)时,通常要跟二进制打交道。比如某个寄存器的第 3 到第 5 位控制时钟分频,你要把十进制数 5 转成二进制 101,看看它对应哪几位。还有调教 I2C 地址、SPI 配置参数时,十六进制和二进制之间的来回转换是家常便饭。
网络安全和逆向分析也离不开进制转换。你在分析网络协议或者恶意软件时,看到的原始数据经常是十六进制(Hex Dump),但你要理解里面的字段含义,得转成十进制或者二进制查看每一位的含义。比如一个 32 位的标志位字段,得转成二进制才能知道每一位对应哪个功能开关。
常见问题
问:支持小数和负数吗? 答:部分实现支持十进制小数的进制转换,但绝大多数在线进制转换器主要处理整数。负数通常以补码形式在二进制中表示,需要专门的工具。本工具主要支持整数在 2-36 进制间的转换。
问:为什么有时候转换结果以字母结尾?
答:因为进制超过 10 之后,数字不够用,需要用字母代替。10=A、11=B、12=C……以此类推。16 进制中 A-F 表示 10-15,36 进制中最大用到 Z(35)。所以你会看到像 FF(255 的 16 进制)、ZZ(1295 的 36 进制)这样的结果。
问:八进制和十六进制在代码中怎么表示?
答:在大多数编程语言中,八进制前缀为 0(如 0777),十六进制前缀为 0x(如 0xFF)。二进制前缀为 0b(如 0b1111,Python 和 C++14 之后支持)。不同的语言可能有微小差异,转换时注意确认。
相关工具推荐
- Base64 编码解码 - 另一种数字编码方式
- Base62 编码器 - 62 进制编码,常用于短链接
- 二进制翻译器 - 文本与二进制之间相互转换