位运算计算器(程序员计算器)
对 8、16、32 或 64 位整数做 AND、OR、XOR、NOT、NAND、NOR、移位、循环移位以及单个位的置位、清零和测试,并给出十六进制、二进制、八进制和有符号结果。
| 十六进制 | 二进制 | 无符号 | 有符号 | |
|---|---|---|---|---|
| A | 0xCA | 1100 1010 | 202 | -54 |
| B | 0x0F | 0000 1111 | 15 | 15 |
| 结果 | 0x0A | 0000 1010 | 10 | 10 |
位掩码、标志位、寄存器的值和哈希函数,在能直接看到各个位时更容易理解。这个程序员计算器对 8、16、32 或 64 位整数执行 AND、OR、XOR、NOT、NAND、NOR、XNOR、移位、循环移位,以及单个位的置位、清零、取反和测试,并像固定位宽的硬件那样让加、减、乘发生回绕。数字可以用十进制、十六进制、二进制或八进制输入;每个结果都以这四种形式显示,同时给出有符号和无符号值、置位个数(popcount)以及前导零和末尾零的个数。
使用方法
- 输入 A:十进制(负数按补码)、0x 十六进制、0b 二进制或 0o 八进制。
- 选择运算。
- 输入 B——第二个操作数、移位或循环移位的次数,或从最右边起算(从 0 开始)的位序号。
- 选择位宽;数值必须能容纳于其中。
- 查看十六进制、二进制、十进制(无符号和有符号)和八进制的结果。
计算公式
AND 1∧1 = 1 · OR 0∨0 = 0 · XOR 1⊕1 = 0 · NOT 翻转每一位 · A << n = A × 2ⁿ mod 2ʷ · A >>> n = ⌊A ÷ 2ⁿ⌋
所有运算都是精确的(BigInt),并按所选位宽 w 做掩码。算术右移 >> 会把符号位复制到空出的位置(相当于有符号值除以 2ⁿ 并向下取整);逻辑右移 >>> 则用 0 填充。循环移位会把从一端移出的位重新放回另一端。有符号值使用补码:最高位为 1 的位模式表示 值 − 2ʷ。
示例
A = 0b1100_1010(0xCA,202)AND B = 0x0F 只保留低 4 位:0x0A = 0000 1010 = 10。当 A = −16(8 位下为 0xF0)时,算术右移 2 位得到 0xFC = −4,而逻辑右移得到 0x3C = 60。
常见问题
>> 和 >>> 有什么区别?
对于负数,>> 用 1 填充,使其保持为负(算术右移),而 >>> 用 0 填充,把位模式当作无符号数。Java 和 JavaScript 两种运算符都有;C 和 C++ 则只用 >>,其行为取决于类型是否有符号。
怎样检查某个标志位是否被设置?
使用“测试 A 的第 B 位”,或把该值与只有这一位为 1 的掩码做 AND:(A & (1 << n)) != 0。
为什么 8 位下 200 + 100 等于 44?
300 无法放进一个字节(最大 255),所以结果发生回绕:300 − 256 = 44,就像无符号 8 位寄存器一样。
popcount 是什么意思?
值为 1 的位的个数。个数为奇数表示奇校验,简单的错误检查会用到它。
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/bitwise-calculator/
引用此工具
kakaoCalc. (2026, November 8). 位运算计算器(程序员计算器). https://kakao.mobile/zh/tools/bitwise-calculator/
“位运算计算器(程序员计算器).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/bitwise-calculator/.