位運算子的使用說明以及使用技巧

2021-10-10 05:59:07 字數 998 閱讀 4973

假設如果 a = 10,且 b = 5,現在以二進位制格式表示,它們如下所示:

a =

0000

1010

b =0000

0101

a & b =

0000

0000 按位與運算子: 全為1 才為 1

a | b =

0000

1111 按位或運算子: 有乙個為1 就為1

a ^ b =

0000

1111 按位異或運算子: 不同才為1

~a =

1111

0101 按位取反運算子: 全部取反

a <

<

2 將得到 0010

1000,即為 40 :左移運算子: 左移1 代表 乘2

, 左移2 代表 乘4

a >

>

2 將得到 0000

0010,即為 2 :右移運算子: 右移1 代表 除2

, 右移2 代表 除4

1、判斷奇偶性

按位與: &1(0000 0001) 等於 0 為偶數, 等於 1 為奇數,因為偶數末位一定為0,其他位都是在 &0 結果都是0

2、判斷是否是2的冪次方

return num & (num -1)== 0

比如4 100 & 011 = 0,是2的冪次方

3、按位或: x | 0 等於 x

將兩個值(x,y)拼在一起作為新的值z

z = x << 32 | y

說明:上面的前提是z的型別是64位,這樣z的前32位代表的是x,後32位代表的y。想要再通過z獲取x,則

x = z >> 32

4、按位與: x & 1 等於 x

5、常用操作

& = 取交集

| = 取並集,比如 x | y = x 中再加 y

& ~x : 將x去掉(跟x的反取交集,相當於去掉x)

c 運算子過載使用說明

運算子過載概念 對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別 一般有 左移,遞增,賦值,關係函式呼叫這幾種運算子過載 基本形式為 返回型別 operator 參數列 1 運算子過載 person int型別 cpp person operator person p,int nu...

JavaScript位運算子使用

是二元運算子,它以特定的方式的方式組合運算元中對應的位,如果對應的位都為1,那麼結果就是1,如果任意乙個位是0 則結果就是0。1 3的結果為1 那我們來看看他是怎麼執行的 1的二進位制表示為 0 0 0 0 0 0 1 3的二進位制表示為 0 0 0 0 0 1 1 根據 的規則 得到的結果為 0 ...

位運算子及其使用

title date br description c語言位運算子及其使用 2020 04 23 03 01 19 0700 位運算 c語言 c提供了按位邏輯運算子和移位運算子 運算子含義 按位取反 按位與 按位異或 掩碼所謂掩碼就是一些設定為開 1 或關 0 的位組合 例如 include def...