位運算子和移位運算子

2022-09-20 02:09:13 字數 757 閱讀 7437

golang中有3個位運算

按位與&、按位或|、按位異或^

按位與&:兩位全為1,結果為1,否則為0

按位或|:兩位有乙個為1,結果為1,否則為0

按位異或^:兩位乙個為0,乙個為1,結果為1,否則為0

例如:2&3=2

2的補碼0000 0010

3的補碼0000 0011

2&3=   0000 0010

-2^2=-4

2的補碼 0000 0010

-2的補碼1111 1110

-2^2=   1111 1100(補碼)==》1111 1011(反碼)==》1000 0100(原碼)

2|3=3

2的補碼0000 0010

3的補碼0000 0011

2|3=     0000 0011

2^3=1

2的補碼0000 0010

3的補碼0000 0011

2^3=   0000 0001

golang中有2個移位運算子

>>、《右移和左移

右移運算子 >>:低位溢位,符號位不變,並用符號位補溢位的高位

左移運算子 <<:符號位不變,低位補0

例如:a := 1 >> 2 //0000 0001 ==》0000 0000 = 0

b := 1 << 2 //0000 0001 ==》0000 0100 = 4

ps:來自尚矽谷 韓順平

位運算子 移位運算子

按位操作符用來操作整數基本資料型別中的單個位元 bit 就是二進位制,按位操作符會對兩個引數中對應的位 bit 執行布林運算,最終生成乙個結果。下面我們來看一下都有哪些位運算子。ok,有人看了之後可能會問,與 或 異或這三個符號不是邏輯運算子嗎,怎麼又成了位運算子?其實,我們知道,任何資訊在計算機中...

位運算 移位運算子

一 位 bit 運算子 位運算子 運算子含義 與 and 或 or 異或 取反 規則 可以把1當做true 0當做false 只有參與運算的兩位都為1,運算的結果才為1,否則就為0。只有參加運算的兩位都是0,運算的結果才是0,否則都是1。只有參加運算的兩位不同,運算的結果才為1,否則就為0。1 與運...

C 位運算子詳解 異或運算子和移位運算子

什麼是位運算 位運算子按二進位制進行運算,這些運算子只能用於整數型別的操作。如 char,short,int,longbqclwf 通過位運算子來獲取高位值和低位值 int a 0x1234 int high,low high a 8 0x00ff low a 0x00ff 左移運算子和www.cp...