WMW

位运算计算器

Free

对二进制、八进制、十进制或十六进制数字执行AND、OR、XOR、NAND、NOR、XNOR、NOT以及位移运算。

按位运算

最近活动

所有人可见。所有访客的最近 20 次使用记录,最新的在前。

AND → 88

1 天前

评论 (0)

觉得这个工具有用吗?留下评论、分享一个小技巧,或者告诉我们如何改进它。

访客评论在发布前会经过审核。 登录 即可立即发布。

暂无评论,快来抢沙发分享您的想法吧!

此工具的功能

对您以二进制、八进制、十进制或十六进制输入的数字执行位级逻辑运算--AND、OR、XOR、NAND、NOR、XNOR、NOT,以及左/右移位。选择固定位宽或让其自动检测,并可查看各种格式的结果以及可视化的逐位分解。

工作原理

每个输入的值都会被转换为固定宽度的原始位模式:二进制、八进制和十六进制输入会被当作字面位模式读取,而十进制输入若为负数则使用二进制补码编码(值 + 2^宽度),若为非负数则直接使用。然后在该宽度上逐位应用所选运算,例如 AND 仅在两个输入位均为 1 时将输出位设为 1,XOR 仅在输入位不同时将其设为 1,NOT 则翻转每一位。移位操作将位模式向左或向右移动 N 个位置,左移和逻辑右移用 0 填充空出的位,算术右移则用符号位的副本填充。结果随后会以二进制、八进制、十六进制,以及无符号十进制(原始值)和有符号十进制(二进制补码解释)的形式读出。

解决的问题

常见问题

AND、OR 和 XOR 有什么区别?

AND 仅当两个位都为 1 时才返回 1(适用于掩码,例如检查特定标志是否已设置)。OR 在至少一个位为 1 时返回 1(适用于组合标志)。XOR 在两个位不同时返回 1,因此适用于切换位或检测两个值之间的变化。

位宽设置实际上有什么作用?

它固定了您的数字用多少位表示(8、16、32 或 64),这影响两件事:负数如何编码(二进制补码在所选宽度处环绕)以及左移时哪些位被丢弃。"自动"会选择能够容纳您输入的两个值且不产生溢出错误的最小标准宽度。

为什么我看到两个不同的十进制结果(有符号和无符号)?

原始位模式本身是模糊的,根据您打算如何使用它,它可以表示一个小的正无符号数,也可以表示二进制补码负数。例如,在 8 位宽度下,模式 11111111 作为无符号数是 255,但作为有符号数是 -1。两种解释都会显示,以便您可以读取符合您上下文的那一种。

逻辑右移和算术右移有什么区别?

逻辑右移 (>>>) 始终用 0 填充空出的最左边的位,不论符号如何。算术右移 (>>) 则用原始符号位的副本填充,因此将负数(二进制补码)右移会保持其为负数,实际上相当于除以 2 的幂,并向负无穷方向舍入。

我可以混合使用数字格式吗,比如对十六进制值和十进制值进行 AND 运算?

可以。值 A 和值 B 各自拥有独立的 十进制/二进制/八进制/十六进制 选择器,因此您可以将一个输入为十六进制,另一个输入为十进制(或任意组合),该工具会在组合之前将两者转换为相同的位宽。

相关工具