二進位制及位運算

2021-09-12 05:34:00 字數 1002 閱讀 3991

一、二進位制基礎

位運算是指二進位制位的運算,在系統軟體中,經常要處理一些二進位制位的問題,例如:在進行計算機之間的通訊的時候需要通過某些標誌位來進行判斷通訊是否成功。

計算機中的儲存器就是由許多位元組(byte)單元組成的。一般,記憶體的最小度量單位就叫做位(bit),也叫位元。而乙個位元組就是由8個二進位制位組成,其中,最右邊 的一位叫做最低位 ,最左邊 的一位叫做最高位 。

所以,乙個16位的整數將在記憶體中佔據2個位元組的儲存空間,乙個32位的整數型別佔據4個位元組的儲存空間。

資料有原碼、反碼、補碼3種表示形式,下面我們逐一學習!  

二、原碼、反碼、補碼介紹

①原碼原碼是指將最高位作為符號位(0表示正,1表示負),其它數字位代表數值本身的絕對值的數字表示方式。

例如:數字6 在計算機中原碼表示為:0 000 0110

其中,第乙個數字0是符號位,0表示正數,0 000110 是數字6的二進位制資料表示。

數字-6 在計算機中原碼表示為:1 000 0110

以上是在8位計算機中的原碼表示,如果在32位或16位計算機中,表示方法也是一樣的,只是多了幾個數字0而已。

例如,在32位 計算機中數字6 的原碼表示為:0000 0000 0000 0000 0000 0000 0000 0110

在16位 計算機中數字6 的原碼表示為:0000 0000 0000 0110

②反碼反碼表示規則為:如果是正數,則表示方法和原碼一樣;如果是負數,則保留符號位 1,然後將這個數字的原碼按照每位取反,則得到這個數字的反碼表示形式。

例如,數字6 在8位 計算機中的反碼就是它的原碼:0000 0110

數字-6 在 8位計算機中的反碼為:1111 1001

③補碼補碼是計算機表示資料的一般方式,其規則為:如果是整數,則表示方法和原碼一樣;如果是負數,則將數字的反碼加上1(相當於將原碼數值位取反然後在最低位加1)。

例如:數字6 在8位 計算機中的補碼就是它的原碼:0000 0110

數字-6 在8 位 計算機中的補碼為:1111 1010

二進位制位運算

與運算,6 3 2 或運算 6 3 7 異或運算 6 3 5 反碼 6 7 左移 3 2 12 3 2 2 12 右移 3 1 1 3 2 1 無符號右移 3 1 1 3 2 1 按位與,當兩位同時為1時才為1如 1 1 1 1 0 0 0 1 0 6 3相當於 0110 0011 0010 2 按...

二進位制位運算

一 按位與 位全為1,結果才為1 0 0 0 0 1 0 1 0 0 1 1 1 特殊用法 清零。如果想將乙個單元清零,就是使其全部二進位制位為0,只要與乙個各位都為零的數值相與,結果為零 取乙個數中的指定位。如x 10101110要取x的低4位,用x 00001111 00001110即可 二 按...

位運算 顛倒二進位制位

a代表某字串 a b 異或 相同為0,不同為1 若b是一串0,則a b a,a b 0 a a 0 若b是一串1,則a b a,相當於把a取反,a b a a a a 利用x x 0,可以將三個數中重複的兩個數去掉 n 相當於無符號右移,左邊會補上0 獲取11111111,只需要把0取反 得到倒數第...