很簡單,真的。我想否定以2的補碼錶示的整數,爲此,我需要首先翻轉字節中的所有位。我知道XOR很簡單 - 僅使用XOR與位掩碼11111111.但是,如果沒有XOR,該怎麼辦? (即只是AND和OR)。噢,在我用的這種糟糕的彙編語言中,NOT並不存在。所以沒有骰子。位掩碼翻轉位...沒有XOR?
0
A
回答
0
4
你不能用AND和OR門建立NOT門。
正如我被要求解釋,在這裏它很好地格式化。假設您有任何數量的AND
和OR
大門。你的輸入是A
,0和1.你有六種可能性,你可以在三個信號中選出三個(選出一個)和兩個門。現在:
Operation Result
A AND A A
A AND 1 A
A AND 0 0
A OR A A
A OR 1 1
A OR 0 A
所以你餵養後您的任何信號到第一門,你的一套新的信號仍然只是一個,0和1。因此,這些門和信號的任意組合,只會讓你A, 0和1.如果你的最終輸出是A,那麼這意味着對於A的兩個值它將不相等!A,如果你的最終輸出是0,那麼A = 0是這樣一個值,以至於你的最終值不是!A同樣爲1.
編輯:單調評論也是正確的!讓我在這裏重複一遍:如果將AND/OR中的任何輸入從0更改爲1,則輸出不會降低。因此,如果你聲稱構建一個NOT門,那麼我將把你的輸入從0改爲1,你的輸出也不能減少,但它應該 - 這是矛盾的。
相關問題
- 1. SPARC - 沒有移位的位掩碼
- 2. FilterIterator位掩碼(或位域)
- 3. 64位位掩碼和javascript
- 4. UIView翻轉掩碼MaskView
- 5. RegEx帶位掩碼?
- 6. 位掩碼操作
- 7. 使用位掩碼
- 8. 生成位掩碼
- 9. Little Endian位掩碼
- 10. 位掩碼問題
- 11. 位掩碼功能
- 12. 用於獲取X和Y位之間的值的位掩碼
- 13. 位掩碼vs移位(+ java字節碼)
- 14. 使用位掩碼或掩碼
- 15. Rapidjson位翻轉
- 16. 如何將int轉換爲位掩碼?
- 17. Powershell中的位掩碼轉換
- 18. 位掩碼的最後5位
- 19. 位掩碼和移位運算
- 20. 應用位掩碼的位向量
- 21. 構建位掩碼?按位數據包
- 22. 設置1位位掩碼的名稱
- 23. 位掩碼和選擇偶數位
- 24. 專訪:翻轉位
- 25. 結合多個位掩碼
- 26. 映射整數位掩碼
- 27. 寫入圖像位掩碼
- 28. Golang:IP掩碼的位數
- 29. 的Ruby語法:位掩碼
- 30. 位域掩碼計算宏
即使是一個「蹩腳的彙編語言」應該有一些做NOT的方法。也許它被稱爲別的東西? – pavium 2011-05-29 01:50:08
如果列出了這個「糟糕的彙編語言」中實際可用的操作,它可能會有所幫助。用AND和OR來做你想做的事是不可能的。 – Nemo 2011-05-29 01:55:20
是的,我很笨。我所要做的只是從0中減去整數...否定它。顯然。 – Asker 2011-06-06 05:42:40