直接进行精确二进制算术
二进制计算器处理只由 0 和 1 表示的整数。规则与十进制相同,只是进位和借位发生在 2 的幂上。本工具支持有符号二进制整数的加、减、乘和整数除法,并同时输出二进制、十进制和十六进制,便于交叉核对。
实现使用 BigInt,而不是先转换为 JavaScript Number,因此超过 53 个有效位也不会丢失精度。很长的位串、掩码、标识符或算法测试值仍能得到精确结果,实际限制主要是浏览器内存和超长字符串的显示成本。
使用方法
本工具处理整数,不处理二进制小数。
- 选择加法、减法、乘法或整数除法。
- 输入两个仅含 0/1 的整数,可带正负号和 0b 前缀。
- 长位串可用空格或下划线分组,解析时会移除。
- 点击“计算”,查看规范化二进制、精确十进制和十六进制结果。
- 除法还会显示余数;商按向零截断规则计算。
二进制算术示例
案例展示进位、负结果、乘法以及商和余数。
| 表达式 | 结果 | 说明 |
|---|---|---|
| 1010 + 11 | 1101 | 10 加 3 等于 13。 |
| 1010 - 11 | 111 | 10 减 3 等于 7,结果去除无意义前导零。 |
| 11 - 1010 | -111 | 负结果使用数学负号,不自动转换为补码。 |
| 1010 × 11 | 11110 | 10 乘 3 等于 30。 |
| 1101 ÷ 101 | 10,余数 11 | 13 除 5,商 2,余数 3。 |
| -1101 ÷ 101 | -10,余数 -11 | BigInt 向零截断,余数与被除数同号。 |
支持的二进制整数格式
每个操作数必须是完整整数:可选正负号、可选 0b/0B 前缀,以及至少一位 0 或 1。空格和下划线可用于分组。小数点、指数、十六进制字母或其他符号会被拒绝。
输出不是固定宽度:零写作 0,正数不带加号,负数带减号,前导零被移除。若需要固定宽度存储模式,可把结果交给二进制补码转换器。
- 合法示例:1010、0b1010、-1010、1111_0000。
- 非法示例:102、10.1、2e10 或空输入。
- 不会默认模拟 8/32/64 位溢出。
- 除数为零会直接报错。
运算原理
校验后,位串被解析为精确 BigInt。加减等价于以 2 为基数的列式进位和借位,乘法等价于对乘数中每个 1 生成移位部分积。
除法返回满足“被除数=除数×商+余数”的整数商和余数。BigInt 的负数除法向零截断,因此 -13÷5 得到 -2 和 -3。
同一个精确整数分别格式化为 2、10、16 进制,不会引入舍入。只有明确选择位宽和掩码时,才是在模拟 CPU 寄存器。
实际用途
精确二进制算术既适合教学,也适合核对整数代码。
验证学习题
检查进位、借位、乘法步骤和二进制长除法。
测试大整数逻辑
为 BigInt、任意精度库、解析器和序列化生成参考结果。
分析位相关数值
计算地址偏移、块数量或二进制容量。
交叉核对表示
使用十进制和十六进制结果确认二进制常量。
常见错误与边界
工具不会猜测小数、位宽或不同除法约定。
包含非二进制数字
2 到 9 不能出现在二进制操作数中,应先转换进制。
期待定宽溢出
任意精度结果会继续增长;模拟寄存器需使用位宽和掩码。
忽略余数
整数除法不产生小数,不能整除时应同时使用商和余数。
把负数除法当向下取整
这里按向零截断,与 floor 除法不同。
与其他工具的区别
算术会改变数值,而许多转换器只改变表示。
二进制转十进制
转换器只改写一个数;计算器用两个操作数执行运算。
位运算计算器
AND、OR、XOR 和移位逐位工作,不等同于普通加法和乘法。
二进制补码
本页负数使用减号,补码工具把它映射为固定宽度位模式。
IEEE-754
IEEE-754 处理带舍入的浮点数,本页只处理精确整数。