进制转换 — 二进制、八进制、十进制、十六进制
一个数,四种进制,任何位宽都不会被舍入。
在你的设备上运行 你粘贴的内容由你自己的浏览器处理,不会发送到任何服务器,离开页面后也不会留在任何地方。
一句话答案
数字可以在浏览器里免费地在二进制、八进制、十进制和十六进制之间转换。输入进制可以由 0x、0b、0o 前缀自动识别,也可以手动指定,每个值都会同时以四种进制给出。转换使用任意精度整数而不是浮点数,所以一个完整的 64 位寄存器值能被精确转换,不会丢掉低位。
一览
| 支持输入 | 每行一个整数,四种进制均可 |
|---|---|
| 输出格式 | 二进制、八进制、十进制与十六进制 |
| 处理方式 | 浏览器本地 |
| 价格 | 免费,无次数限制 |
| 账号 | 无需注册 |
同时给出四种进制、而不是让你选一个目标进制,是刻意的:转换本身是瞬间完成的,而“这个数十六进制是多少”之后往往紧接着一句“那二进制呢”。一张表就把两个问题都回答了。
任意精度运算是实际使用中真正要紧的部分。一个 JavaScript 数字只能精确表示 53 位,所以把 64 位的十六进制转储交给普通浮点数去转,低位会悄悄算错 —— 而那种错误看上去完全像个合理的答案。这里的转换会保住每一位。
使用步骤
- 1
粘贴数字
每行一个。0xFF、0b1011 和 255 都认;数字中间的下划线和空格会被忽略。
- 2
必要时指定输入进制
“自动”会读前缀,读不到就按十进制。没有前缀的数字请手动选进制。
- 3
点击转换
每个值都会以二进制、八进制、十进制和十六进制一并返回。
- 4
复制你需要的部分
把表格复制到剪贴板,或者下载成文本文件。
常见问题
64 位的数值能精确转换吗?
能。转换使用任意精度整数,所以哪怕远远超出双精度能精确表示的 53 位,每一位数字也都保得住。
能识别哪些前缀?
0x 表示十六进制、0b 表示二进制、0o 表示八进制,大小写都行。手动选定进制时,对应的前缀依然会被接受并忽略。
支持负数吗?
支持,在前面写一个减号即可。要注意这是带符号的数值,不是补码位模式 —— 如果你要的是后者,请直接转换你手上那个无符号的位模式。
能转小数吗,比如二进制的 0.101?
不能,这里只做整数转换。二进制小数需要另一套处理方式,而悄悄把它四舍五入掉,会比直接说不能更糟。