二进制计算器:掌握二进制算术、位运算和补码
二进制算术乍一看很陌生:1010 + 0110 = 10000,没有列超过 1,减法通过将数字的负数版本相加来完成。但这正是你现在使用的设备每个处理器核心内部每秒执行数十亿次的精确算术。二进制计算器将这一隐藏层带到表面——不仅仅是将数字转换为二进制,而是直接在 base-2 中执行加法、减法、乘法和除法,配备溢出检测、负数补码表示,以及从 8 位到 64 位的可配置位宽。无论你是在调试低级固件程序、教授计算机体系结构课程,还是为网络配置计算子网掩码,我们的免费在线二进制计算器都能以标准袖珍计算器无法提供的方式处理二进制算术,精度和视觉清晰度兼备。
二进制计算器
免费 · 无需注册
分步指南
用二进制、十进制或十六进制输入你的操作数
以任何支持的表示法输入你的数字——二进制(1010)、十进制(10)或十六进制(A)。计算器同时以三种格式显示每个操作数,让你始终可以交叉参考。对于负数,切换补码模式并选择位宽(8、16、32 或 64 位)。在 8 位补码中,-5 表示为 11111011,而不仅仅是"带负号的 5"。工具自动计算正确的补码编码。
选择你的操作和位宽
从加法、减法、乘法或除法中选择,并设置计算的位宽。位宽很重要:将两个产生 9 位结果的 8 位数字相加会触发溢出,计算器用红色高亮显示。对于乘法,结果位宽加倍(两个 8 位输入可以产生最多 16 位的乘积)。计算器让你以自然位宽或任何更宽的位宽查看结果,这对于理解 CPU 如何处理进位标志和溢出标志至关重要。
阅读逐步计算分解
在每个结果下方,计算器按位逐列显示二进制算术过程——就像十进制的长加法或长乘法。对于加法:每列的和(0+0=0、0+1=1、1+0=1、1+1=10 带进位)都有注解。对于使用补码的减法:工具显示如何对减数取负(翻转所有位,加 1),然后相加。除法直接在二进制中显示长除法步骤。这种细节水平对学习和验证都极有价值。
使用技巧与最佳实践
二进制加法规则:0+0=0、0+1=1、1+0=1、1+1=10(写 0,进 1)。这与十进制加法相同,只是你在 2 处进位而不是 10。用两个 4 位数字练习,直到进位模式变成自动的——然后更长的位宽只是相同模式的重复。
补码是计算机表示负整数的通用方式。要对一个数取负:翻转所有位(反码),然后加 1。示例:8 位中 5 是 00000101。翻转位:11111010。加 1:11111011——这就是 -5。补码的美妙之处:加法和减法使用完全相同的硬件电路,负数没有特殊情况。
溢出发生在结果无法放入目标位宽时。在 8 位无符号中,255 + 1 = 0(回绕)。在 8 位有符号(-128 到 127)中,127 + 1 = -128(最负值)。CPU 对有符号溢出设置溢出标志(V flag),对无符号溢出设置进位标志(C flag)——相同位的不同解释需要不同的标志。
二进制中乘以 2ᵏ 就是左移 k 位:101(5)<< 2 = 10100(20)。除以 2ᵏ 就是右移 k 位:10100(20)>> 2 = 101(5)。这就是为什么 C 编译器将 `x * 8` 替换为 `x << 3`——位移动在硬件中比乘法快几个数量级。
按位 AND 可以测试数字是偶数还是奇数:number & 1 = 0 表示偶数,= 1 表示奇数。按位 OR 可以将特定位设为 1:将值的第 3 位设为 1 意味着 value | 0b1000 = value | 8。按位 XOR 可以翻转位:value ^ (1 << n) 翻转第 n 位。这些操作是设备驱动程序、嵌入式系统和高性能代码与硬件寄存器交互的方式。
在 32 位算术中,无符号范围是 0 到 4,294,967,295;有符号(补码)范围是 -2,147,483,648 到 2,147,483,647。为什么不对称?零占用了 2³² 种可能的位模式之一(000...000),在非负侧,留下 2,147,483,647 个正值和 2,147,483,648 个负值。
网络子网掩码严重依赖二进制算术。像 255.255.255.0 这样的子网掩码在二进制中是 11111111.11111111.11111111.00000000——恰好 24 个 1 后跟 8 个 0。IP 地址与其子网掩码之间的逻辑 AND 提取网络部分。理解二进制位运算使 IP 子网划分变得直观而非玄奥。
常见问题解答
二进制算术不是深奥的技能——它是你写的每行代码之下直接的一层。我们的二进制计算器通过逐步分解、补码处理和 8 到 64 位的溢出检测让这一层可见。无论你是在调试、教学还是学习,亲眼看到硅片正在做什么。
免费试用此工具 →open_in_new