🔢位运算计算器 - AND/OR/XOR、移位与补码,支持 64 位
调寄存器、解协议标志位、算权限掩码的时候,真正费时间的不是运算本身,而是在二进制、十六进制和十进制之间来回换,还要记住这一位到底是第几位。这个计算器把两个数的 AND、OR、XOR、与非、清位、取反、左移右移和循环移位一次全列出来,每个结果都同时给出补齐位宽的二进制、十六进制和十进制,位格还能直接点着翻转。位宽可选 8、16、32、64,内部用大整数计算,所以 64 位也不会像 JavaScript 的 << 那样算错。
免费 · 无需注册 · 浏览器本地处理最后更新:
正在加载工具...
如何使用位运算计算器
- 1填入数值 A 和 B,可以写十进制,也可以写 0x1F、0b1010、0o17
- 2选位宽(8/16/32/64),需要看负数就勾上「按有符号解释」
- 3填移位位数,下面的结果会实时更新
- 4点位格可以直接翻转 A 的某一位,拿来凑掩码很方便
常见问题
- 为什么和我在浏览器控制台里算的不一样?
- JavaScript 的位运算先把数字转成 32 位有符号整数,超过 32 位会被截断,负数经过 >>> 还会变成很大的正数。这里用 BigInt 按你选的位宽计算,所以 64 位和有符号的结果都是对的。
- 算术右移和逻辑右移差在哪?
- 逻辑右移(>>>)高位一律补 0,适合把数当成无符号位串;算术右移(>>)高位补符号位,让负数右移后仍然是负数,相当于带符号地除以 2ⁿ。
- 怎么判断某一位是 1?
- 用 AND 取掩码:想看第 3 位就和 1 << 3 = 0b1000 做 AND,结果非 0 就说明那位是 1。置位用 OR,清位用 AND NOT,翻转用 XOR,这四种运算这里都有现成结果。
- 补码到底怎么看?
- 最高位是符号位,负数等于「取反再加一」。所以 8 位下 0xFF 既可以读成无符号 255,也可以读成有符号 −1:同一串二进制,两种读法。勾上有符号开关就能对照着看。