按位異或運算 (正數(shù)異或負數(shù)) 、按位非(~)

正數(shù)反碼:與原碼相同

負數(shù)反碼:符號位為“1”,數(shù)值位按位 取反。

正數(shù)補碼:與原碼相同

負數(shù)補碼:求反加一

記住:

所有參與運算的都是以補碼形式進行的 結果也是補碼 因此也需要將補碼轉(zhuǎn)換成為原碼的形式存在

下面就以一個例子進行講解:

負二 異或 三等于多少?(-2 ^ 3) = ?

那么怎么轉(zhuǎn)換成位補碼呢?

1.如果是負數(shù)的情況,那么將需要進行轉(zhuǎn)換

負數(shù)的補碼:符號位為1,其余位為該數(shù)絕對值的原碼按位取反;然后再加1。

如:-2

源碼:1000 0000 0000 0010 (負數(shù),最高為是1)

反碼:1111 1111 1111 1101 (按位取反)

補碼:1111 1111 1111 1110 (加一)

2.如果是正數(shù),那么原碼和補碼一樣

3的補碼:

0000 0000 0000 0011

所以-2^3 =

1111 1111 1111 1110

^ 0000 0000 0000 0011

= 1111 1111 1111 1101

因為結果也是補碼,所以必須要轉(zhuǎn)換成為原碼

分為兩種情況:

1.如果最高為為1 即為負數(shù) 那么最高位不變 其他按位取反,

最后加一 和前邊補碼轉(zhuǎn)原碼是一樣的

2.最高為是0,不用轉(zhuǎn)化

===============此題的結果為:-3

其他的運算都是類似的 注意:

所有參與運算的都是以補碼形式進行的結果也是補碼 因此也需要將補碼轉(zhuǎn)換成為原碼的形式存在

按位非(~)

我們直接進入主題,查看~-5的運算原理圖,從而得出按位非的運算規(guī)律:


image.png

從圖不難看出,原碼 --取反-> 反碼 --加1-> 補碼 --取反-> 按位非值;那如果是正數(shù)按位非呢,反推估計就行了的!

得出的口訣就是(不知道對不對,也沒驗證):數(shù)值(正數(shù)、負數(shù))加1取反;如-5按位非:-5 + 1為-4,取反為4;6按位非:6+1為7,取反為-7;
轉(zhuǎn)自:https://blog.csdn.net/qq506124204/article/details/7521996
https://blog.csdn.net/cyb_23/article/details/41863689

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容