透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

A NOR B = ~(A | B)
4,294,967,281
32-bit unsigned · binary 11111111111111111111111111110001
輸入值 A 12
輸入值 B 10
A | B(OR 或運算) 14
NOR(十進位) 4,294,967,281
NOR(二進位) 11111111111111111111111111110001

什麼是位元 NOR 運算計算機?

這個工具會使用公式 \(\text{result} = \sim(\text{A} \mathbin{|} \text{B})\) 計算兩個整數的位元 NOR 運算。NOR(即「NOT OR」,反或閘)是一種基本的邏輯運算:它會先對每一對對應的位元執行 OR(或)運算,再將結果取反。只有當兩個輸入位元都為 0 時,輸出位元才會是 1。NOR 具備「功能完備性」——任何其他邏輯閘都可以單獨用 NOR 閘組合而成,這正是它在數位電子領域如此重要的原因。

如何使用

輸入兩個整數(A 與 B),再選擇位元寬度(8、16、32 或 64 位元)。計算機會回傳在該寬度下以無號值(unsigned)解讀的 NOR 結果,同時顯示中間的 OR 運算值以及二進位表示法。選擇較小的位元寬度只是將較高的位元遮罩(mask)掉,在模擬固定寬度暫存器時相當實用。

公式說明

兩個位元做 OR 運算時,只要其中一個位元為 1,結果就是 1。NOR 則會把這個結果取反,因此每個位元都遵循以下真值表:0 NOR 0 = 1、0 NOR 1 = 0、1 NOR 0 = 0、1 NOR 1 = 0。由於單純的取反(~)會把所有高位元都設為 1,因此我們會用以下公式對結果進行遮罩,使其落在所選的無號位元寬度範圍內。

$$\text{NOR} = \sim\left(\text{A} \mathbin{|} \text{B}\right) \mathbin{\&} \left(2^{\text{Bits}} - 1\right)$$

兩個 8 位元二進位數經或非運算產生的反或結果列
位元或非比較每一對位元:只有當兩個輸入位元都為 0 時,輸出位元才為 1。

實例演算

假設在 8 位元寬度下,A = 12(二進位 1100),B = 10(二進位 1010)。\(\text{A} \mathbin{|} \text{B} = 1110 = 14\)。在 8 位元範圍內取反後得到 \(11110001 = 241\)。因此在 8 位元寬度下,\(12 \text{ NOR } 10 = \mathbf{241}\)。

含輸入位元與輸出位元的雙輸入或非真值表格線
或非真值表:僅當輸入為 0,0 時輸出才為 1。

NOR 真值表和位寬遮罩

按位 NOR 運算將兩個運算數逐位組合。對於每一對位,它首先計算 OR,然後反轉結果。換句話說,輸出位僅當兩個輸入位都是 0 時才為 1;在所有其他情況下,輸出位為 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 運算數並反轉後,該值被遮罩到寬度 \(n\) 使用 \(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)。它決定了反轉結果保留多少位,因此決定了輸出的數值範圍。
遮罩
使用按位 AND 與像 \(2^{n}-1\) 這樣的值一起,僅保留最低的 \(n\) 位並丟棄更高的位。這將 NOR 結果限制在所選寬度內。
無符號整數
沒有符號位的整數表示,因此所有位模式表示從 0 到 \(2^{n}-1\) 的非負值。NOR 結果報告為無符號值。
函數完整(通用)閘門
可以使用其自身的複製構建任何布林函數的閘門。NOR 在函數上是完整的:AND、OR 和 NOT 都可以從 NOR 閘門單獨構建,這就是為什麼它被稱為通用閘門。

常見問題

為什麼結果會隨位元寬度而改變?取反運算會翻轉每一個位元,因此前導的那些 1 會取決於用多少位元來表示該數字。寬度越大,得到的無號結果就越大。

可以使用負數嗎?輸入會被當作整數處理;若想得到乾淨明確的結果,建議使用所選寬度範圍內的非負整數。

NOR 和 NAND 一樣嗎?不一樣。NAND 是 \(\sim(\text{A} \mathbin{\&} \text{B})\)(反及閘,NOT AND),而 NOR 是 \(\sim(\text{A} \mathbin{|} \text{B})\)(反或閘,NOT OR)。兩者都是萬用邏輯閘,但會產生不同的輸出。

最後更新: