通过MCP连接 →

输入计算

数学公式

广告

结果

A NOR B = ~(A | B)
4,294,967,281
32-bit unsigned · binary 11111111111111111111111111110001
输入 A 12
输入 B 10
A | B(或运算) 14
NOR(十进制) 4,294,967,281
NOR(二进制) 11111111111111111111111111110001

什么是按位或非(NOR)计算器?

该工具按照公式 \(\text{结果} = \sim(\text{A} \mathbin{|} \text{B})\) 计算两个整数的按位或非。NOR(即“非或”,NOT OR)是一种基础逻辑运算:它先对每一对对应位执行“或”(OR)运算,再对结果取反。只有当两个输入位都为 0 时,输出位才为 1。NOR 是一种“功能完备”的运算——任何其他逻辑门都可以仅用 NOR 门搭建出来,这正是它在数字电子领域如此重要的原因。

如何使用

输入两个整数(A 和 B),并选择一个位宽(8、16、32 或 64 位)。计算器会返回该位宽下以无符号数解释的 NOR 结果,同时给出中间的 OR 值以及二进制表示。选择较小的位宽相当于把更高位掩码(mask)掉,这在模拟固定位宽寄存器时非常实用。

公式详解

两个位的“或”(OR)只要有一位为 1,结果就为 1。NOR 则对其取反,因此每一位都遵循如下真值表:0 NOR 0 = 1,0 NOR 1 = 0,1 NOR 0 = 0,1 NOR 1 = 0。由于直接取反(~)会把所有高位都置为 1,我们需要用 \(2^n - 1\) 对结果做掩码,使其保持在所选的无符号位宽范围之内。

$$\text{NOR} = \sim\left(\text{A} \mathbin{|} \text{B}\right) \mathbin{\&} \left(2^{\text{Bits}} - 1\right)$$
两个 8 位二进制数经或非运算生成的反或结果行
按位或非比较每一对比特:只有当两个输入比特都为 0 时,输出比特才为 1。

实例演算

设 A = 12(二进制 1100),B = 10(二进制 1010),位宽为 8 位。\(\text{A} \mathbin{|} \text{B} = 1110 = 14\)。在 8 位范围内取反得到 \(11110001 = 241\)。因此在 8 位宽下,\(12 \ \text{NOR}\ 10 = \mathbf{241}\)。

含输入比特和输出比特的双输入或非真值表网格
或非真值表:仅当输入为 0,0 时输出才为 1。

NOR真值表与位宽掩码

按位NOR运算逐位组合两个操作数。对于每对位,它首先计算OR,然后反演结果。换句话说,输出位为1仅当两个输入位都为0;在其他所有情况下输出位为0。这是OR的否定,因此得名NOR(NOT-OR)。

单位NOR真值表:result = ~(A | B)
A B A | B NOR = ~(A | B)
0 0 0 1
0 1 1 0
1 0 1 0
1 1 1 0

由于NOT步骤反演每一位,结果取决于所选的位宽。在对操作数进行OR并反演之后,值使用\(2^{n}-1\)进行掩码处理,以便仅保留最低的\(n\)位。下面显示每个支持的宽度的掩码。

位宽及其无符号掩码\(2^{n}-1\)
位宽\(n\) 掩码\(2^{n}-1\)(十进制) 最大无符号值
8 255 255
16 65535 65535
32 4294967295 4294967295
64 18446744073709551615 18446744073709551615

例如,在8位宽度下,\(A = 12\)和\(B = 10\)时:\(12 | 10 = 14\),\(\sim 14\)掩码到8位得到241。中间OR结果\(12 | 10 = \)14可以独立验证。

关键术语

按位NOR
一种运算,产生的结果的每一位仅在两个操作数的对应位都为0时为1。它被定义为OR结果的反演:\(\text{NOR} = \sim(A | B)\)。
OR(按位)
一种运算,如果两个对应的输入位中至少有一个为1,则将每个结果位设置为1;仅当两个都为0时才设置为0。
NOT / 反演(~)
一个一元运算,反演每一位:每个0变为1,每个1变为0。在NOR中,它被应用于OR结果,其效果受所选位宽的限制。
位宽
用于表示值的位数(这里为8、16、32或64)。它决定反演结果保留多少位,因此决定输出的数值范围。
掩码
使用与\(2^{n}-1\)这样的值进行按位AND以仅保留最低\(n\)位并丢弃较高位。这将NOR结果限制在选定的宽度内。
无符号整数
没有符号位的整数表示,因此所有位模式表示从0到\(2^{n}-1\)的非负值。NOR结果报告为无符号值。
函数完备(通用)门
一种门,可以使用其自身的副本构建任何布尔函数。NOR是函数完备的:AND、OR和NOT都可以仅从NOR门构建,这就是为什么它被称为通用门。

常见问题

为什么结果会随位宽变化? 取反会翻转每一个位,因此前导的若干个 1 取决于用多少位来表示该数字。位宽越大,得到的无符号结果就越大。

可以使用负数吗? 输入会被当作整数处理;为获得清晰的结果,建议使用所选位宽范围内的非负整数。

NOR 和 NAND 一样吗? 不一样。NAND 是 \(\sim(\text{A} \mathbin{\&} \text{B})\)(非与),而 NOR 是 \(\sim(\text{A} \mathbin{|} \text{B})\)(非或)。两者都是通用门,但输出结果不同。

最后更新: