位操作詳解

2021-08-26 16:53:22 字數 1071 閱讀 7509

我們先來看看位運算操作符:& (按位與)、| (按位或)、^ (按位異或)、~ (按位取反)、>> (按位右移)、<< (按位左移)。

1、&(按位與) 從概念上來講,就是將參與運算的兩個分量對應的每一位來做邏輯與運算,若兩者都為真(等於1),則結果才為真(等於1)。否則都為假(等於0)。

即:1 & 1 = 1 、1&0 = 0 、0&1 = 1、0&0 = 0

這裡我們先來看看那乙個8位二進位制的例子:

7&8 = 0000 0111 & 0000 1000 = 0000 0000 = 0

7&6 = 0000 0111 & 0000 0110 = 0000 0110 = 6

2、| (按位或) 即把參與運算的每個分量對應的每一位來做邏輯或運算,即兩者都為假(為0)時,才為假(為0),否則皆為真。

即:0|0 = 0、1|0 = 1、0|1 = 1、1|1 = 1

來看看8位二進位制的例子:

7|8 = 0000 0111 | 0000 1000 = 0000 1111 = 15

7|6 = 0000 0111 | 0000 0110 = 0000 0111 = 7

3、^(按位異或) 即把參與運算的每個分量對應的每一位來做異或運算,即兩者相同為假,不同為真。

即:0|0 = 0、 1|0 = 1、0|1 = 1、 1|1 = 0

看下面的例子:

7^8 = 0000 0111 ^ 0000 1000 = 0000 0111 = 7

7^6 = 0000 0111 ^ 0000 0100 = 0000 0011 = 3

4、~(按位取反) 即把二進位制位的每一位進行取反運算,簡而言之就是1變成0,0變成1。

直接看例子:

~7 = ~0000 0111 = 1111 1000 = 248

5 >>(按位右移)把二進位制位整體向右移動。

7>>1 = 0000 0111 >> 1 = 0000 0011 = 3

7>>2 = 0000 0111 >> 2 = 0000 0001 = 1

這裡右移等於除了2的n次方,n為右移的位數。

6 <<(按位左移)這裡就不詳細說了,和右移相反。

位操作的詳解

define bwmcdr2 address 4 define bsmcdr2 address 17 define bmmcdr2 address bit mask mcdr2 address define bit mask bf 1u bw bf 1 bs bf define set bits d...

位運算操作詳解

在計算機中所有資料都是以二進位制的形式儲存的。位運算其實就是直接對在記憶體中的二進位制資料進行操作,因此處理資料的速度非常快。在實際程式設計中,如果能巧妙運用位操作,完全可以達到四兩撥千斤的效果,正因為位操作的這些優點,所以位操作在各大it公司的筆試面試中一直是個熱點問題。基本的位操作符有與 或 異...

位運算操作符詳解二

位運算是指進行二進位制的運算。在系統軟體中,常需要處理二進位制位的問題。例如,將乙個儲存單元中的各二進位制位左移或右移一位,兩個數按位相加等。c語言提供位運算的功能。運算子 含義 按位與 按位或 按位異或 取反 左移 右移 說明 位運算子中,除了 取反以外,均為二目 元 運算子,即要求兩側各有乙個運...