什么是二进制计算器?

二进制算术计算器,可对二进制数进行加法、减法、乘法、除法、取模和幂运算,并同时以二进制、十进制、八进制和十六进制显示结果。

除了基本运算,这个计算器还会把结果同时用二进制、十进制、八进制和十六进制四种进制显示出来,方便你直观对照同一个数值在不同进制下的样子。在十进制模式下输入一个数,它会在计算前自动转成二进制。输入长度没有死限制,减法的负数结果也照常处理。除法只取整数部分、丢弃余数,这和底层 CPU 指令一致——想要那个余数时改用取模运算,想算指数时用幂运算。选择 8、16 或 32 位寄存器位宽,即可把结果补到该大小,并以二进制补码的有符号值读出,正如 CPU 寄存器存储它的方式。

使用方法

  1. 输入两个数——可以直接用二进制,也可以把某个输入框切到十进制,它会自动转成二进制。
  2. 选择运算:加、减、乘、除、取模(求余数)或幂,还有按位与、或、异或、非和移位。
  3. 查看二进制、十进制、八进制和十六进制的结果。

何时使用

  • 对照位运算作业或者备战数字逻辑课程考试时验证答案。
  • 把寄存器里读到的二进制值同时转成十进制和十六进制对比。
  • 写汇编子程序前,先验一下进位和借位的行为对不对。

结果

11011 + 10110(十进制27 + 22)得出110001(49),同时显示二进制、十进制、八进制和十六进制。

常见问题

为什么小的减大的会得到负数?
本计算器把输入当作无符号正整数处理,显示带符号的十进制结果。真实 CPU 用二进制补码,会回绕成一个很大的正数。0001 减 0010 这里显示 -1,但在 8 位寄存器里其实是 11111111。在上方选择 8 位寄存器位宽,就能看到这一确切位型以及它按带符号方式读出的值。
支持二进制补码输入吗?
输入仍按纯数值大小读取,没有符号位。但你不必再手动补位了:选择 8、16 或 32 位寄存器位宽,结果就会以二进制补码显示,补到该位宽并像硬件寄存器一样回绕,旁边还给出它的有符号十进制读数。
为什么除法只给整数结果,不带小数?
这里的二进制除法对应大多数处理器的整数 DIV 指令:向 0 截断,余数丢弃。1010 ÷ 0011 也就是 10 ÷ 3 得到 11(十进制 3),不是 3.33。真想要剩下的余数就切到取模运算;需要小数则先换成十进制再算。
二进制字符串最长能输入多少位?
JavaScript 的 parseInt 和 Number 能精确处理大约 53 位精度,所以 50 位左右的输入结果完全准确。再长的话,低位会因为浮点舍入出现偏差。学习用够了,密码学场景不要在这里跑。
十六进制结果怎么读?
十六进制(基数 16)每 4 位二进制对应 1 位,用 0 到 9 再加 A 到 F 表示。所以 11111111 二进制 = FF 十六进制 = 255 十进制。程序员喜欢用十六进制,因为每位刚好对应字节里的一个半字节。

相关工具