1. 程式人生 > >位與&,位或|,位異或^運算,以及運用場景

位與&,位或|,位異或^運算,以及運用場景

一.按位與運算子

  • 參加運算的兩個資料,按二進位制位進行位與運算.

          例如:3&5

         先將兩個資料轉化為二進位制數,然後按位進行與運算,同為1結果為1,其它情況結果為0

          即:11&101=001結果為1

特別提醒:負數按補碼形式參加按位與運算

  • 位與運算的特殊用途:

       1.清零(將一個單元與0進行位與運算結果為零)

       2.取一個數中指定位(例如取X=1010 1101的低四位 則將X&00001111得到0000 1101)。

 3.判斷奇偶性:任意數與1取位與,結果為1則是奇數

二.按位或運算子

  • 參加運算的兩個資料,按二進位制位進行位或運算
    例如:3 | 5
    先將兩個資料轉化為二進位制數,然後進行按位或運算,只要有一個是1結果為1,不然結果為0

    即:11&101=111結果為7

特別提醒:負數按補碼形式參加按位或運算

  • 位或運算的特殊用途:
    常用來對資料的某些位置1(例如將X=1010 1010的第四位置1,則將X |0000 1111得到1010 1111)。

三.按位異或運算子

  • 參加運算的兩個資料,按二進位制位進行位異或運算
    例如:3^5
    先將兩個資料轉化為二進位制數,然後進行按位異或運算,只要位不同結果為1,不然結果為0
    即:11^101=110結果為6
  • 異或運算的特殊用途:
    1.使特定位翻轉找一個數,對應X要翻轉的各位,該數的對應位為1,其餘位為零,此數與X對應位異或即可。
    例:X=10101110,使X低4位翻轉,用X ^0000 1111 = 1010 0001即可得到。
    2.與0異或得到原值
    例:X=10101110,用X^0=10101110

相關推薦

&|^運算以及運用場景

一.按位與運算子 參加運算的兩個資料,按二進位制位進行位與運算.          例如:3&5          先將兩個資料轉化為二進位制數,然後按位進行與運算,同為1結果為1,其它情況結

法轉換為2進制 & 運算、| 運算、^運算運算

2進位制是轉換的媒介 10進位制對位法 128 64 32 16 8 4 2 1 8進位制對位法 4 2 1 4

Java中的按(&)、按(|)、(^)等運算子

按位與運算子(&) 參加運算的兩個資料,按二進位制位進行“與”運算。 運算規則:0&0=0;   0&1=0;    1&0=0;     1&1=1;        即:兩位同時為“1”,結果才為“1”,否則為0 例如:3&5  即 0000 0011 &a

1到nn個整數連續的值(1 xor 2 xor 3 ... .. xor n)

。。 nbsp 異或 == ... n) 暴力 bsp 連續 暴力推,前12個數如下: 1 3 0 4 1 7 0 8 1 11 0 12 。。。。 所以對於任意的 n 有如下結論: if : n % 4 == 1 ans

【codechef】n個數多少種取法的值==m【二項式定理】

由於比賽還沒結束所以先不放題目了。。。(轉化題意:n個數,多少種取法的異或值==m ) 這道dp要寫得非常小心,考慮全面。第一發超時,原因是n=10^5,所以複雜度1024000,但是又想到所有數字都不超過1023,所以直接求每個數出現的次數就好。。 但是——這樣轉化之後,

& (運算)、|(運算)、^(運算)的本質理解

位與運算子(&) 參加運算的倆個數據,按二進位制位進行"與"運算。 運算規則:0&0=0; 0&1=0; 1&0=0; 1&1=1; 即:倆位同時為"1", 結果才為“1”, 否則為0 例如:3&5 即 0000 0011

數字邏輯電路中的邏輯運演算法則--、非、非、非、、同

                                                                         數字邏輯電路中的邏輯運演算法則 首先把中文意思和英文簡寫一一作出對應:                            

取反

spa 位運算 符號 targe 取反 span 特殊性 一個 target 位運算符:是指對二進制位從低位到高位對齊後進行運算。 1、按位與 & 二進制“與”運算規則:1&1=1 1&0=0 0&0=0 例如

java二進位制數原碼補碼反碼運算子 (&)、非(~)、(|)、(^)及運算總結

    看過博主另一篇文章--Java集合--HashMap,對裡面使用的運算子及位運算不是很清楚的童鞋可以看下這篇文章,對理解hashMao原始碼很有幫助,自己也可以在程式中寫寫,逼格絕對滿分!!!      大家都知道一個位元組是8個二進位制

python中 “按C語言的不同

ref:https://www.2cto.com/kf/201311/254868.html 在python中:按位的運算,都按位的運算,都是把參加運算的數的二進位制形式進行運算。1.與運算:A與B值均為1時,A、B與的運算結果才為1,否則為0 (運算子:&)2.或運算:A或B值為1

通過來交換ab的值和通過中間變量交換ab的值

[] printf urn %d include ret std char har //通過位異或來交換a,b的值 #include <stdio.h> int main(int argc, const char * argv[]) { int a=20,

leetcode_461. Hamming Distance 計算漢明距離運算計算整數的二進位制表示中1的個數 java

題目: The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two int

JavaSE7基礎 運算 int類型變量進行 按

網上 深入 ava demo new 與或非 反碼 技術分享 notepad jdk版本 :jdk-7u72-windows-i586系統 :Windows7編輯器 :Notepad++ v7.4.2註意事項 :博文內容僅供參考,不可用於其他用途。 代

leetcode算法題1: 兩個二進制數有多少不相同?、位移、運算的主場

output 判斷 ++ 輸入 urn ger ria 結果 ret /* The Hamming distance between two integers is the number of positions at which the corresponding bit

Java的運算符詳解實例——(&)、非(~)、(|)、(^)(僅作記錄)

out 位運算符 異或運算 pri stat 運算 data 操作 amp 位運算符主要針對二進制,它包括了:“與”、“非”、“或”、“異或”。從表面上看似乎有點像邏輯運算符,但邏輯運算符是針對兩個關系運算符來進行邏輯運算,而位運算符主要針對兩個二進制數的位進行邏輯運算。下

Java 運算(移位、、非)(轉)

位與 異或 print 我們 如果 運行 str 換算 system public class Test { public static void main(String[] args) { // 1、左移( << ) // 0000 0000 00

Java 運算(移位、、非)邏輯運算

高效率 邏輯與 才會 system 區別 span get 右移 邏輯 java 位運算包括:左移( << )、右移( >> ) 、無符號右移( >>> ) 、位與( & ) 、位或( | )、位非( ~ )、位異或( ^

Java的運算符—(&)、非(~)、(|)、(^)

ati 得出 rdquo 根據 有一個 關系 public 操作數 針對 位運算符主要針對二進制,它包括了:“與”、“非”、“或”、“異或”。從表面上看似乎有點像邏輯運算符,但邏

java編程之:按運算運算規則

與運算 補碼 同時 復合 方法 amp 邏輯 例如 賦值 按位與運算符(&) 參加運算的兩個數據,按二進制位進行“與”運算。 運算規則:0&0=0; 0&1=0; 1&0=0; 1&1=1; 即:兩位同

運算之 C

代碼 cout expr namespace 整數 建議 div 不同 har View Code 位運算比較易混: 位運算之 C 與或非異或 與運算:& 兩者都為1為1,否則為0 1&1=1, 1&0=0, 0&1=0, 0