进制转换器
在你的设备上运行,不会发送任何内容。不会发送任何内容——所有转换都在你的设备上完成,离线也能用。
以 0x、0b 或 0o 开头可输入十六进制、二进制或八进制。数字之间的空格和 _ 会被忽略。
示例
结果
- 二进制 (2)
- 11111111
- 八进制 (8)
- 377
- 十进制 (10)
- 255
- 十六进制 (16)
- FF
- 73
- 所需位数
- 8
- 为 1 的位数
- 8
- Unicode 字符
- U+00FF ÿ
二进制补码
这个数在固定位数中的存储方式,分别按有符号和无符号读取。点按某一位即可翻转它。
- 有符号
- -1
- 无符号
- 255
- 十六进制
- 0xFF
- 二进制
- 1111 1111
- 字节(大端序)
- FF
- 字节(小端序)
- FF
- 按位取反(NOT)
- 0x00
位
最左边的位是符号位:为 1 时,有符号值为负数。计算过程
从十进制转为:
| 除法 | 商 | 余数 |
|---|---|---|
| 255 ÷ 2 | 127 | 1 |
| 127 ÷ 2 | 63 | 1 |
| 63 ÷ 2 | 31 | 1 |
| 31 ÷ 2 | 15 | 1 |
| 15 ÷ 2 | 7 | 1 |
| 7 ÷ 2 | 3 | 1 |
| 3 ÷ 2 | 1 | 1 |
| 1 ÷ 2 | 0 | 1 |
余数从下往上读: 11111111
在二进制、八进制、十进制、十六进制及 2-36 任意进制之间转换数字,大数、小数和补码都精确无误。
为程序员、学生和所有要看十六进制转储的人准备的转换器:用二进制、八进制、十进制、十六进制或 2 到 36 之间的任意进制输入一个数,就能同时看到它在所有进制下的写法。结果是精确的——40 位的数字每一位都保留,像 0.1 这样的小数会显示无限循环的数字,而不是四舍五入的近似值。整数还会给出 8 到 128 位的补码、字节序和可点按的位网格,并附有每次转换的计算步骤,方便做作业。
常见问题
二进制怎么转十进制?
把每一位乘以它的位权再相加。二进制的位权从右往左是 2 的幂:1、2、4、8、16……所以 1011 = 1×8 + 0×4 + 1×2 + 1×1 = 11。展开“计算过程”可以看到你自己的数字的计算。
十进制怎么转二进制或十六进制?
反复除以新进制并记下每次的余数,直到商为 0,然后把余数从下往上读:11 ÷ 2 得到余数 1、1、0、1,所以 11 的二进制是 1011。十六进制中余数 10 到 15 写作 A 到 F。
为什么 FF 等于 -1?
在 8 位中,FF(11111111)作为无符号数是 255,但在补码(计算机存储有符号整数的方式)中是 -1:最高位代表 -128 而不是 +128。同样的位模式在 16 位(00FF)中就是 255。选择位宽即可看到两种读法。
为什么 0.1 在二进制中永远写不完?
0.1 就是 1/10,而 10 含有因数 5,二进制无法整除它——就像 1/3 在十进制中永远写不完一样。数字 0011 会无限循环:0.0(0011)。大多数计算器会把它四舍五入;这里会精确找出循环节并用横线标出。这也是为什么在大多数编程语言里 0.1 + 0.2 并不正好等于 0.3。
数字最大可以多大?
最多 4096 个字符,每一位都保留。很多转换器使用 JavaScript 的普通数字,会悄悄把超过 9,007,199,254,740,991(2^53 − 1)的数四舍五入;这里使用精确的大整数运算,所以 64 位和 128 位的值都是对的。
我的数字会被发送出去吗?
不会。一切都在你的浏览器中计算,所以页面离线也能用。复制的链接会把数字保存在地址的 ?q= 之后——只分享给可以看到它的人。