跳到正文

进制转换

Number Base Converter

在二进制、八进制、十进制、十六进制乃至最高 36 进制之间互转,并给出按位查看。

用一种进制输入一个数,同时读出它的二进制、八进制、十进制和十六进制,以及最高到 36 的任意进制。下面的位视图显示实际的比特模式,当这个数是一个标志位字段或权限掩码时,你要的通常就是它。

🔒 完全在你的浏览器里运行basebinaryhexconvert

支持小数:二进制写 1010.101,十六进制写 1A.8。空格和下划线会被忽略。

32

转换结果

  • 二进制11111111
  • 八进制377
  • 十进制255
  • 十六进制ff
  • 36 进制73
  • 7进制513

括号里的数字会无限重复下去。任何有理数在任何进制下要么除尽,要么循环:0.1 在十进制里是精确的,在二进制里是 0.0(0011)。

按位查看

常见位宽下的二进制补码
位宽位
8位放不进 8位
16位0000 0000 1111 1111
32位0000 0000 0000 0000 0000 0000 1111 1111
64位0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111

二进制补码,CPU 真正使用的表示法。

往返检查:255(转回 10进制的结果)

怎么用

  1. 说明你输入的是几进制

    同样的数字在不同进制里是不同的数:101 在十进制里是一百零一,在二进制里是五。填错这一项,是在这里得到错误答案的唯一途径。

  2. 输入数字

    十六进制字母大小写都行。所选进制里不存在的数字——比如八进制里的 8——会被报出来,而不是悄悄丢掉。

  3. 看位视图来读掩码和标志

    它标出了各个位的位置,所以你一眼就能看出 0o755 设置了所有者写位、清除了组写位,不用掰手指数。

常见问题

它能处理的最大数是多少?

换算在精确整数上进行,不是双精度浮点数,所以超过 2^53 的数保留每一位。一个 64 位的十六进制值能精确往返,不会最后几位被舍掉。

为什么到 36 进制就停了?

因为只有十个数字和二十六个字母,再往上就没有公认的字母表了。62 进制和 64 进制是存在的,但各有几种互不兼容的排序,一个提供它们的换算器只能猜你指的是哪一种。

负数的二进制怎么读?

显示的是一个负号,而不是补码模式,因为补码只有在固定了位宽之后才有意义。需要 −1 的 32 位模式,先给它加上 2^32。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。