位運算子總結

2021-09-19 19:56:52 字數 1186 閱讀 5976

與運算:相同位置的兩個數都為1則為1,若有乙個不為1,則為0.

00101 & 11100

–00100

int data = 100

; system.out

.println("data-->" +integer.tobinarystring(data));

system.out

.println("64-->"+integer.tobinarystring(64));

int s = data & 0x40

; system.out

.println("& result-->"+integer.tobinarystring(s));

結果是:

data–>1100100

64–>1000000

& result–>1000000

或運算:相同位置有乙個或多個1則為1,若都為0則為0

00101 | 11100

11101

異或運算:相同位置上的值不相同則為1,相同則為0

00101 ^ 11100

11001

取反運算:把記憶體中的0和1全部取反

無符號:得到的值就是它與型別上界的差

例項 data—>1100100

64—->1000000

~data—->11111111111111111111111110011011

~data的十進位制—–>-101

左移運算:a shl b 表示把a轉換為二進位制後左移b位(在後面添b個0)

例如 100的二進位制表示為1100100,而110010000表示400,所以100 shl 2=400

所以 a shl b 實際上是a乘以2的b次方

右移運算:a shr b 表示a的二進位制右移b位(去掉末尾b位),相當於a除以2的b次方(取整)

用shl 或 shr 要比直接用乘除運算塊的多,因為後者是更接近底層的操作。

位運算子,「,」逗號運算子,

位運算子有 按位與 按位或 按位異或 按位取反 優先順序從高到低,依次為 按位與運算有兩種典型用法,一是取乙個位串資訊的某幾位,如以下 擷取x的最低7位 x 0177。二是讓某變數保留某幾位,其餘位置0,如以下 讓x只保留最低6位 x x 077。按位或運算的典型用法是將乙個位串資訊的某幾位置為1。...

運算子之位運算子

右移 負數 無符號右移 或 異或 與 非 說明 位運算子都是作用在二進位製上的 比如 n 50 n 1 結果是多少?100 n 2 結果是多少?200 n 5 結果是多少?1600 為什麼會是這樣的呢?運算的邏輯如下 1,n 50 2,n的二進位制是 0011 0010 3,0011 0010 左移...

ECMAScript 運算子 位運算子

位運算子是在數字底層 即表示數字的 32 個數字 進行操作的 重溫整數 ecmascript 整數有兩種型別,即有符號整數 允許用正數和負數 和無符號整數 只允許用正數 在 ecmascript 中,所有整數字面量預設都是有符號整數,這意味著什麼呢?有符號整數使用 31 位表示整數的數值,用第 32...