假設如果 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...