1. 程式人生 > >C語言的按位與、或、非、異或

C語言的按位與、或、非、異或

位運算子有:&(按位與)、|(按位或)、^(按位異或)、~ (按位取反)。 優先順序從高到低,依次為~、&、^、| 按位與運算有兩種典型用法,一是取一個位串資訊的某幾位,如以下程式碼擷取x的最低7位:x & 0177。二是讓某變數保留某幾位,其餘位置0,如以下程式碼讓x只保留最低6位:x = x & 077。 按位或運算的典型用法是將一個位串資訊的某幾位置為1。如將要獲得最右4位為1,其他位與變數j原來其他位保持相同,可用邏輯或運算017|j; 按位異或運算的典型用法是求一個位串資訊的某幾位資訊的反。如欲求整型變數j的最右4位資訊的反,用邏輯異或運算017^j,就能求得j最右4位的資訊的反,即原來為1的位,結果是0,原來為0的位,結果是1。 交換兩個值,不用臨時變數,假如a=3,b=4。想將a和b的值互換,可以用以下賦值語句實現: a=a^b; b=b^a; a=a^b; 取反運算常用來生成與系統實現無關的常數。如要將變數x最低6位置成0,其餘位不變,可用程式碼x = x & ~077實現。

相關推薦

C語言 取反

https://blog.csdn.net/ZhaoFaxing/article/details/78905066   與運算:& 兩者都為1為1,否則為0 1&1=1,  1&0=0,  0&1=0,  0&

c語言反轉二進位制輸出函式

#include<stdio.h> //bit_reverse:32位數按位反轉函式 //  作用:把一個32位整數按位反轉,即第1位轉到第32位,第2位轉到第31位,依次下去。 //演算法實現:第一行程式碼為奇偶位相互交換;第二行為以兩位為一單元,奇偶單元進

c語言^的應用例項

1.若a ^ b = c; 則有a ^ c = b, b ^ c = a; 例:將兩個整形變數交換(不建立臨時變數) 這裡就可以用到上面得到的規律來寫,在寫程式碼之前先給上面的規律附上具體值來驗證一下:            1

C語言取反快速計算

內部使用 證明 需要 內部 計算機 所有 假設 它的 code 先說結論 假設x為signed int,也就是說它的補碼表示中第一位表示符號(1:負;0:正),那麽~x=-(x+1) 證明 計算機內部使用補碼表示,則問題相當於求證:當x為signed int時,(~x)補=

C語言

位運算子有:&(按位與)、|(按位或)、^(按位異或)、~ (按位取反)。 優先順序從高到低,依次為~、&、^、| 按位與運算有兩種典型用法,一是取一個位串資訊的某幾位,如以下程式碼擷取x的最低7位

常見操作及運算應用舉例:1,C語言運算子“∧”的作用2,運算的作用3,&(運算)|(運算)^(運算)

  1 C語言中位運算子異或“∧”的作用: 異或運算子∧也稱XOR運算子。它的規則是若參加運算的兩個二進位同號,則結果為0(假);異號則為1(真)。即0∧0=0,0∧1=1,1∧1=0。如: 即071∧052,結果為023(八進位制數)。 “異或”的意思是判斷兩個相應的位值是否為“

C++ 等運算方法

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

等運算方法

三種 補碼 1=1 emp sign 進制 不同 用途 即將 1、按位與運算符(&) 參加運算的兩個數據,按二進制位進行“與”運算。運算規則:0&0=0; 0&1=0; 1&0=0; 1&1

運算符左移右移原碼反碼補碼

位運算符 位數 是我 計算機 基礎上 個數字 部分 普通 bsp 位運算符的基本規則1,位運算符都是針對整數的二進制數字形式而進行的。2,按位與運算基本規則(規則表):1 & 1 ==> 11 & 0 ==> 00 & 1 ==>

總結

位運算子有:&(按位與)、|(按位或)、^(按位異或)、~ (按位取反)。 優先順序從高到低,依次為~、&、^、| 1. 按位與操作 0&0=0; 0&1=0; 1&0=0; 1&1=1 例子:10&9:

python中 “C語言的不同

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

“全棧2019”Java第二十章:反碼運算

難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第二十章:按位與、按位或、異或、反碼、位運算

java (邏輯&&&邏輯|||^左移和右移)的區別?

首先名稱是不同的 &&邏輯與  ||邏輯或  它們都是邏輯運算子 & 按位與  | 按位或  它們都是位運算子 if(a==1&&b==2) 這是說既要滿足a=1也要滿足b=2 if(a==

Python取反(筆記)

1. 按位與        按位與是針對二進位制數的操作,指將兩個二進位制數的每一位都進行比較,如果兩個相 應的二進位都為 1 則此位為 1,否則為 0。在本例中, 5 的二進位制表達為 101 , 3 的 二進位制表達為 11 (為補全位數進行按位操作寫作 011 ),則

按位與、或 、異或 a &= b -> a = a & b , a 和 b 二者必須都為 1, 那麼,a 的最終結果才為 1 a != b -> a = a | b , a 或者 b 只要有一個為 1, 那麼,a 的最終結果就為 1 a ^

5運算子左移右移原碼反碼補碼

 位運算子的基本規則 1,位運算子都是針對整數的二進位制數字形式而進行的。 2,按位與運算基本規則(規則表): 1 & 1 ==> 1 1 & 0 ==> 0 0 & 1 ==> 0 0 & 0 ==> 0; 3,

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

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

運算------取反<<>>>>>

位或 進制數 如果 符號位 按位與 所有 不同 amp 十進制轉二進制 程序中的所有數在計算機內存中都是以二進制的形式儲存的,位運算就是直接對整數在內存中的二進制位進行操作。 知識點: 1、補碼:用於將十進制的負整數轉換為二進制數。十進制的正整數可以除以2取余,負整數則

C語言資料結構演算法之深度廣度優先搜尋

一、深度優先搜尋(Depth-First-Search 簡稱:DFS) 1.1 遍歷過程:   (1)從圖中某個頂點v出發,訪問v。   (2)找出剛才第一個被頂點訪問的鄰接點。訪問該頂點。以這個頂點為新的頂點,重複此步驟,直到訪問過的頂點沒有未被訪問過的頂點為止。   (3)返回到

《6.C語言巨集定義預處理函式和函式庫》

《6.C語言巨集定義與預處理、函式和函式庫》 第一部分、章節目錄 4.6.1.C語言預處理理論 4.6.2.C語言預處理程式碼實戰 4.6.3.巨集定義1 4.6.4.巨集定義2 4.6.5.函式的本質 4.6.6.函式的基本使用 4.6.7.遞迴函式 4.6.8.函式庫 4.6.9.字