Toolkitbar

进制转换 — 二进制、八进制、十进制、十六进制

一个数,四种进制,任何位宽都不会被舍入。

选项

在你的设备上运行 你粘贴的内容由你自己的浏览器处理,不会发送到任何服务器,离开页面后也不会留在任何地方。

一句话答案

数字可以在浏览器里免费地在二进制、八进制、十进制和十六进制之间转换。输入进制可以由 0x、0b、0o 前缀自动识别,也可以手动指定,每个值都会同时以四种进制给出。转换使用任意精度整数而不是浮点数,所以一个完整的 64 位寄存器值能被精确转换,不会丢掉低位。

一览

支持输入每行一个整数,四种进制均可
输出格式二进制、八进制、十进制与十六进制
处理方式浏览器本地
价格免费,无次数限制
账号无需注册

同时给出四种进制、而不是让你选一个目标进制,是刻意的:转换本身是瞬间完成的,而“这个数十六进制是多少”之后往往紧接着一句“那二进制呢”。一张表就把两个问题都回答了。

任意精度运算是实际使用中真正要紧的部分。一个 JavaScript 数字只能精确表示 53 位,所以把 64 位的十六进制转储交给普通浮点数去转,低位会悄悄算错 —— 而那种错误看上去完全像个合理的答案。这里的转换会保住每一位。

使用步骤

  1. 1

    粘贴数字

    每行一个。0xFF、0b1011 和 255 都认;数字中间的下划线和空格会被忽略。

  2. 2

    必要时指定输入进制

    “自动”会读前缀,读不到就按十进制。没有前缀的数字请手动选进制。

  3. 3

    点击转换

    每个值都会以二进制、八进制、十进制和十六进制一并返回。

  4. 4

    复制你需要的部分

    把表格复制到剪贴板,或者下载成文本文件。

常见问题

64 位的数值能精确转换吗?

能。转换使用任意精度整数,所以哪怕远远超出双精度能精确表示的 53 位,每一位数字也都保得住。

能识别哪些前缀?

0x 表示十六进制、0b 表示二进制、0o 表示八进制,大小写都行。手动选定进制时,对应的前缀依然会被接受并忽略。

支持负数吗?

支持,在前面写一个减号即可。要注意这是带符号的数值,不是补码位模式 —— 如果你要的是后者,请直接转换你手上那个无符号的位模式。

能转小数吗,比如二进制的 0.101?

不能,这里只做整数转换。二进制小数需要另一套处理方式,而悄悄把它四舍五入掉,会比直接说不能更糟。

相关工具

浏览全部数学工具 →