数值 / 位运算 / 单位

位运算计算器看清每一位的去向

选择位宽和进制,勾选标志位,检查运算后的掩码。

位运算计算器

输入

第 0 位是最低有效位,勾选直接修改对应操作数。

结果

十进制结果
8
无符号十进制
8
有符号十进制
8
二进制
00001000
十六进制
0x08
八进制
0o10
70
60
50
40
31
20
10
00

置位位置(1 个): 3

输入仅在当前浏览器中处理,不会发送到服务器。

选项

每个操作数为一个整数,最多 256 个字符;0b/0o/0x 必须匹配所选进制,不接受小数或分隔符。

有符号模式允许输入负数,并将最高位解释为符号位;算术右移复制该符号位。

计算完成。

排查权限组合、寄存器字段或协议标志时,一个十进制数字往往藏着多个开关。位运算计算器把数值和每一位放在一起:将原值填入 A、位掩码填入 B,再用 AND 找出共有的标志。

这里的负数用定宽补码解释,同一串二进制可以有不同的十进制读数。切换有符号设置之前,先看最高位;它决定的是解释方式,并不自动改写输入文本。

为什么使用位运算计算器

交集可以逐位核对

位运算计算器默认展示 12 AND 10 = 8。两行输入中只有第 3 位同时置位,结果也只保留这一位;位号列表和置位数量让掩码解码有据可查,而不是只看一个十进制答案。

两行八格位图汇入第三行,只有两个输入共同点亮的格子被保留。

把两种右移放在明处

在 8 位有符号模式中,将 A 设为 240,右移 2 位。逻辑右移补零得到 60,算术右移补符号位得到 −4。选择器明确列出两种操作,方便比较高位变化。

同一组最高位点亮的八格位图分成两路,右移后分别补空格和补亮格。

先核对解释方式,再操作位图

01

进制选择会重新解释原文

初始参数是十进制、8 位、无符号、A 为 12、B 为 10、AND。改进制不会把原文转换为另一种写法;输入 0xFF 前请选十六进制,前缀不匹配会报错。

02

从位号判断标志位置

第 0 位是最低有效位,位图按位号从高到低分行。直接勾选会写回对应操作数。NOT 和移位只使用 A,因此隐藏 B;移位量始终单独按十进制输入。

03

先预览批量改写

自动计算在停顿 350 毫秒后更新;关闭后可点计算或按 Ctrl/Cmd + Enter。示例、清空和交换先显示变动字段数量,应用后可撤销,输入、参数和结果一起恢复。

从标志开关到定宽结果

用不同运算管理标志

AND 提取指定位置,OR 设置标志,XOR 做异或计算并切换标志。例如 A 为 5、B 为 3 时,三种结果分别为 1、7、6。NOT 仅反转 A 在当前位宽内的位,B 的旧内容不参与。

完整保留 64 位整数

64 位无符号最大值 18446744073709551615 可精确参与运算。结果同时显示有符号与无符号十进制读数,二进制按位宽补零,十六进制按对应位数补零,八进制保留数值。

从结果反查掩码

结果列出所有值为 1 的位号及总数。把 B 当作掩码做 AND,可检查哪些标志命中;用 OR 设置、XOR 切换。这里不猜测业务名称,第 3 位代表什么由具体协议或程序定义。

输入范围与移位边界

输入超宽直接报错
非负输入可取 0 至 2^w−1,包括有符号模式下的原始位模式;负数必须开启有符号设置,且不小于 −2^(w−1)。越界输入不会静默回绕,请扩大位宽或修正数值。
结果截断与输入校验不同
左移会丢弃移出高端的位,NOT 只反转当前位宽。移位量必须为 0 至位宽的十进制整数,恰好等于位宽时左移与逻辑右移得到零,算术右移得到全零或全一,不按 32 取模。
只接受单行整数
每个操作数最多 256 个字符,允许可选正负号和匹配进制的 0b、0o、0x 前缀。只去掉首尾 ASCII 空格和制表符,不接受内部空格、分隔符、换行、小数或十进制科学计数法。
符号设置不替换原文
有符号设置改变十进制读数,不改变二进制或十六进制位模式。算术右移仅在有符号模式可选,关闭后切回逻辑右移。文本 −1 扩宽仍是 −1;原文 255 扩宽到 16 位仍按正数 255 读取。
不计算浮点或表达式
首版仅支持 8、16、32、64 位,不提供无限位宽、旋转、位序反转、NAND/NOR/XNOR 或四则表达式。也不导入命名标志表、文件或 URL,不保存持久历史记录。

位运算计算器常见问题

固定位宽下,为什么 NOT 0 不一定显示为 −1?

NOT 会将当前位宽的零全部翻为一。8 位时位模式为 11111111,无符号解释是 255,有符号解释才是 −1。位运算计算器会同时给出两种十进制读数,便于检查。

为什么切换有符号设置后,十六进制、二进制和八进制不变?

这些输出表示原始位模式,有符号设置只改变十进制解释。例如 8 位的 0xFF 可读作 255 或 −1,位本身没有改变。若原文是负数,关闭有符号模式会报错,而不是偷偷转换。

右移到底补零,还是补符号位?

逻辑右移始终在高位补零;算术右移复制最高符号位,且要求开启有符号模式。8 位 11110000 右移两位时,前者为 00111100,后者为 11111100。

位图从哪一端开始编号?

最低有效位是第 0 位,也就是通常书写二进制时最右边的一位。本页按位号从高到低排布,窄屏会分行;判断权重应看位号,第 n 位的权重为 2^n。

小数能参与位运算吗?

本工具只接受整数,不会将小数截断,也不读取浮点数的内存表示。十进制 1.5 和 1e3 会报错;十六进制中的合法字母仍是数位,例如 1e3 表示一个十六进制整数,但仍须符合位宽。

结果与预期不符?

开始使用位运算计算器

用位运算计算器检查一个掩码,再改动某一位或位宽,对照结果位图。当前结果计算完成后,即可复制或下载含参数的完整报告。