← 全部工具
数据不出浏览器
Number Base Converter — Bin Oct Dec Hex
免费进制转换器。在二进制、八进制、十进制与十六进制之间转换。
二进制
11111111
八进制
377
十进制
255
十六进制
FF
换进制时别差一位
一个数值用不同的进制写,值本身不变,转换不会改变它。这正是前导零危险的原因:在按八进制解读的语境里,带前导零的值并不是它看起来的那个十进制数,而猜错的转换器改变的是含义,不是写法。
前缀是给机器看的线索。多数语言里 0x 表示十六进制、0b 表示二进制;而一串裸数字是含糊的,只要超出两种进制共有的字符范围就无法判断。值在不同系统之间传递时,请显式写明进制。
注意位宽。32 位值习惯上写成八位十六进制,把前导零丢掉的转换器产出的短形式,会让要求定长字段的协议无法解析。这对哈希、颜色和二进制格式很重要,对纯展示则完全无所谓。
常见问题
- 支持 0x 前缀吗?
- 十六进制模式下可带或不带 0x。
- 负数呢?
- 当前面向非负整数转换。
- 数据会上传吗?
- 不会。
- 为什么带前导零的数字转换结果不一样?
- 因为在多种语言里前导零表示八进制字面量,于是 010 是八而不是十。本意是十进制时,请去掉前导零或显式指定进制,不要依赖转换器从字符串形状去猜。
- 怎么把 RGB 颜色转成十六进制?
- 每个通道是 0 到 255 的数值,恰好对应两位十六进制。把三个通道分别转换后用两位补零拼接,所以值为 10 的通道要写成 0A,而不是 A。
- 这里能转的最大数值是多少?
- 实际上限是 JavaScript 数值的精度,只能精确表示到 2 的 53 次方减一。更大的值会静默丢精度、末位数字变化,所以大整数请按字符串转换,不要按数值转换。