在线位运算计算器

对两个整数施加 AND、OR、XOR、NOT 和位移运算,并以二进制、十六进制、十进制和八进制读取结果——在你的浏览器中用 BigInt 计算。

位运算计算器完全在你的浏览器中运行。你输入的整数以及每一个 AND、OR、XOR、位移和 NOT 结果都在你的设备上计算,绝不会发送到 ArrayKit 或任何服务器。

打开进制转换器

关于 位运算计算器

位运算计算器对两个整数施加 AND、OR、XOR、NOT 以及三种位移运算符,并一次性以二进制、十六进制、十进制和八进制显示每个结果。用你习惯的任意进制输入每个操作数——十进制、十六进制(0xff)、二进制(0b1010)或八进制(0o17)——并读回一个分组的逐位视图,它会将操作数逐列对齐,让你能准确看到哪些位发生了翻转。由于它用 BigInt 计算,像 1 << 40 这样的左移会给出精确的 1099511627776,而不会像 JavaScript 自带的运算符那样在 32 位处溢出。它专为嵌入式开发者、驱动和协议编写者,以及任何解读寄存器标志或权限掩码的人而打造。每个操作数和结果都留在你的浏览器中。

功能特性

如何使用 位运算计算器

  1. 选择一种运算——AND、OR、XOR、NOT,或某种位移(<<、>>、>>>)
  2. 输入值 A,然后输入值 B 或位移量(NOT 仅使用 A)
  3. 选择输入进制,或保持「自动」以识别 0x、0b 和 0o 前缀
  4. 以二进制、十六进制、十进制和八进制查看结果,并复制你需要的进制

示例

输入

A = 12
B = 10
op = AND

输出

BIN  1000
HEX  0x8
DEC  8
OCT  0o10

12(1100)AND 10(1010)只保留共有的位,得到 8(1000)。

常见错误与故障排除

常见问题

为什么这个位运算计算器使用 BigInt 而非 32 位整数?
JavaScript 的位运算符会把操作数强制转换为 32 位有符号整数,因此 1 << 40 会溢出为 256,大数值会丢失其高位。用 BigInt 计算能让每个结果都保持精确,无论数字或位移有多大。
在计算器中 >> 和 >>> 有什么区别?
>> 是算术右移,会保留符号位,因此 -8 >> 1 为 -4。>>> 是逻辑(无符号)右移,会在所选的 32 位或 64 位位宽内用零填充高位,因此 -1 >>> 28 为 15。
为什么 NOT 5 显示为 -6?
按位 NOT 会翻转每一个位,在补码中这等同于 -(n+1)。因此 NOT 5 的十进制是 -6。查看 HEX 和 BIN 行,即可看到补齐到你所选位宽的取反位模式。
我可以混用十六进制、二进制和十进制操作数吗?
可以。明确设置输入进制,或保持「自动」并为每个值加上 0x、0b 或 0o 前缀。工具会解析两个操作数、施加运算符,并将结果一并以全部四种进制呈现。
我该如何读取负数结果的十六进制或二进制?
负数结果以所选位宽的补码显示,因此 -6 在 32 位十六进制中读作 0xfffffffa。十进制行始终保持有符号且精确;若需要更宽的位模式,请切换到 64 位。
32 位与 64 位的位宽设置会改变什么?
位宽控制无符号右移在何处用零填充,以及负数或 NOT 结果的补码十六进制、八进制和二进制使用多少位。十进制值以及正数的逻辑 AND/OR/XOR 不受影响。

相关工具

全部 ArrayKit 工具