閱讀源碼時(shí)候發(fā)現(xiàn)自己對(duì)這些運(yùn)算還不熟悉胶逢,所以寫(xiě)篇文章記錄下來(lái)
符號(hào) | 描述 | 說(shuō)明 | 0 0 | 0 1 | 1 0 | 1 1 |
---|---|---|---|---|---|---|
| | 或 | 兩個(gè)位都為1時(shí)才為1 | 0 | 0 = 0 | 0 | 1 = 0 | 1 | 0 = 0 | 1 | 1 = 1 |
& | 與 | 兩個(gè)位都為0時(shí)才為0 | 0 & 0 = 0 | 0 & 1 = 0 | 1 & 0 = 0 | 1 & 1 = 1 |
^ | 異或 | 兩個(gè)位相同為0厅瞎,不同為1 | 0 ^ 0 = 0 | 0 ^ 1 = 1 | 1 ^ 0 = 1 | 1 ^ 1 = 0 |
~ | 取反 | 0變1 ,1 變 0 | ||||
<< | 左移 | 各二進(jìn)位全部左移若干位初坠,高位丟棄和簸,低位補(bǔ)0 | ||||
>> | 右移 | 各二進(jìn)位全部右移若干位,對(duì)無(wú)符號(hào)數(shù)碟刺,高位補(bǔ)0锁保,有符號(hào)數(shù),各編譯器處理方法不一樣半沽,有的補(bǔ)符號(hào)位(算術(shù)右移)爽柒,有的補(bǔ)0(邏輯右移) |
原碼補(bǔ)碼反碼
1、正數(shù)的原碼者填、反碼浩村、補(bǔ)碼都一樣;
2占哟、負(fù)數(shù)的反碼 = 它的原碼符號(hào)位不變心墅,其他位取反(取反的意思:0 換成 1 、 1 換成 0 )榨乎;
3怎燥、負(fù)數(shù)的補(bǔ)碼 = 它的反碼 +1;
4蜜暑、0的反碼铐姚、補(bǔ)碼都是0;
【特別注意】
1肛捍、在計(jì)算機(jī)運(yùn)算的時(shí)候隐绵,都是以 補(bǔ)碼 的方式來(lái)運(yùn)算的 之众。
2、二進(jìn)制 轉(zhuǎn)為 十進(jìn)制依许,必須使用 二進(jìn)制 的原碼進(jìn)行轉(zhuǎn)換
3、補(bǔ)碼的補(bǔ)碼就是原碼