功能说明
位运算计算器对 8 / 16 / 32 / 64 位的值执行精确的、按宽度掩码的位运算。用二进制、八进制、十进制或十六进制输入操作数 - 每个操作数保留自己的进制 - 并在常驻结果面板中同时以每种进制读取结果。面板带有当前运算符和宽度的徽章(例如 XOR · 8-bit),还有一个实时位网格,精确高亮哪些位被置位。支持的运算:AND、OR、XOR、NOT(一元)、SHL/SHR(逻辑移位)和 ROL/ROR(在所选宽度内回绕的旋转)。全部数学运算跑在 bigint 上,结果精确、没有浮点舍入。一切都在你的浏览器中完成。
运算符参考
| 运算符 | 符号 | 输入 | 作用 |
|---|---|---|---|
| AND | & |
A 和 B | 两个操作数都为 1 的位得 1 - 掩码并提取位 |
| OR | | |
A 和 B | 任一操作数为 1 的位得 1 - 置位并合并位 |
| XOR | ^ |
A 和 B | 两个操作数不同的位得 1 - 翻转位 |
| NOT | ~ |
仅 A | 在所选宽度内翻转每一位(操作数 B 被忽略) |
| SHL | << |
A,计数 B | 把 A 左移 B 位;右侧补零,被推出宽度的位被掩掉 |
| SHR | >> |
A,计数 B | 逻辑右移 B 位;左侧补零 |
| ROL | ⟲ |
A,计数 B | 循环左移 B mod width 位;离开顶部的位从底部回来 |
| ROR | ⟳ |
A,计数 B | 循环右移 B mod width 位;离开底部的位从顶部回来 |
使用方法
- 工具打开时即有一个实时示例 - 8 位宽度下十六进制
CA和35的XOR- 因此首屏就有计算结果。编辑任一操作数,面板立即更新。 - 从工具栏选择宽度(8/16/32/64 位)- 它对所有值和结果做掩码。
- 从运算符行中选择运算(
AND到ROR)。选择NOT会禁用操作数 B。 - 输入操作数 A(二元运算还需要操作数 B;对移位和旋转,B 是计数)。每个操作数上方的
BIN/OCT/DEC/HEX开关设定它的进制 -0x/0b/0o之类前缀会被自动剥掉。 - 读取结果面板:十进制、十六进制、八进制和二进制行,外加位网格(MSB 在左,LSB 在右,高亮的位是 1)。复制结果复制全部四行;复制分享链接把整个计算编码进 URL。
- Sample 恢复内置示例;Clear 清空两个操作数。
示例
下面每个值都是该输入下工具的真实输出。
两个十六进制字节 XOR(8 位)- 默认示例
width: 8-bit op: XOR
A (hex): CA → 1100 1010
B (hex): 35 → 0011 0101
result: dec 255 · hex 0xff · oct 0o377 · bin 1111 1111 (every bit set)
用 AND 掩码(32 位)
A (hex): DEADBEEF B (hex): 0000FFFF
result: dec 48879 · hex 0x0000beef · bin 0000 0000 0000 0000 1011 1110 1110 1111
NOT 与移位(8 位)
op: NOT A (hex): 0F, B: - → dec 240 · hex 0xf0 · bin 1111 0000
op: SHL A (hex): 01, B (dec): 4 → dec 16 · hex 0x10 · bin 0001 0000
op: SHR A (hex): 08, B (dec): 1 → dec 4 · hex 0x04 · bin 0000 0100
旋转在宽度内回绕(8 位)
op: ROL A (hex): 80, B (dec): 1 → dec 1 · hex 0x01 · bin 0000 0001
(1000 0000 rotated left by 1: the top bit wraps around to bit 0)
op: ROR A (hex): 01, B (dec): 1 → dec 128 · hex 0x80 · bin 1000 0000
(0000 0001 rotated right by 1: bit 0 wraps around to the top)
负操作数会被规范化(8 位)
A (dec): -1 op: AND B (dec): 1
result: dec 1 · hex 0x01 · bin 0000 0001
(-1 becomes 1111 1111, the 8-bit two's-complement pattern, before the op)
补充说明
- 二进制补码掩码: 每个值在运算前被规范化为所选宽度的无符号位模式,结果再掩码回来 - 因此 8 位下的
NOT 0x0F是0xf0,而不是一个巨大的负数;8 位下的-1表现为0xff。 - 移位丢弃溢出: 8 位下
0xFF << 1是0xfe- 被推出宽度的位一去不返,与原生定宽整数完全一致。 - 旋转会回绕:
ROL/ROR按count mod width旋转,因此按宽度本身旋转等于空操作。 - 可分享: 操作数、进制、运算和宽度全部编码在 URL 中 - 打开链接即恢复精确的计算。
- 私密: 所有计算都在本地 - 不向任何地方发送任何内容。
- 相关工具: Number Base Converter、JSON Formatter、Cron Expression Explainer。