通過AND或XOR來確定兩個二進制數字之間的共享/差異位是快速而簡單的。假設我們有A:10011和B:11001,我們可以得到差異。
10011 XOR 11001 = 01010 (1不同0相似。)
是否有任何快速而簡單的邏輯或算術運算可以產生類似但不對稱的輸出(例如顯示這些1在A中存在但在B中缺失或反之亦然。
舉例來說,10011?11001 = 00010 (1s 表示左手運算元存在,右手運算元缺失)
是否可以做到?
是否可以通過一些快速算術/邏輯來完成,或者我必須啟動一些回圈來逐一進行比較?
當我考慮將一些存在/不存在的資料以位元標志的形式存盤在位元組中時,我想到了這個問題(為了提高記憶體效率)--我已經為這樣做的事實感到高興,我可以快速而簡單地進行資料差異操作,但對于許多應用來說,差異的方向也很重要。
uj5u.com熱心網友回復:
更典型的表達方式是A和(NOT B),其中NOT翻轉了所有位。
CodePudding
tkausl - 對問題的評論成功回答了它。 (A XOR B) AND A將真正做到這一點。 XOR將產生A和B之間的差異,然后與A進行AND掩碼,只顯示A中存在的這些位,結果差異顯示A中設定的這些位,但B中沒有。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/319989.html
標籤:
上一篇:一系列的整數,當系列中的任何數量的元素加在一起時,會形成一個唯一的值。
下一篇:在python中對矩陣進行轉置
