C語言異或運算子的使用,在c語言中異或的用法是什麼?

2021-03-27 08:25:46 字數 6118 閱讀 7314

1樓:千鋒教育

異或的意思就是相異為真。。

現在問題主要是出現在這一句。。

b[--i]=a[j]^a[--j];

注意啦。。編譯器編譯的時候是從後向前的。。也就是先算a[--j],這樣j就先自減了。。j從3變為2。。然後再算a[j],因為j是2,呼叫的時候,就是調a[2]

所以整個語句第一次執行的時候就是b[2]=a[2]^a[2],結果顯然是0;

所以輸出的是1100

2樓:雨夜

#include

void main()

直接用異或符號^,得到的是數字9,因為設定輸出是%d

3樓:匿名使用者

^異或運算相當於不進位的加法運算,就是相同的變0,不同的變1,舉個例子

1 0 1 1 1 1 0 0

^ 0 1 1 0 1 0 0 1= 1 1 0 1 0 1 0 1

4樓:一生有你乀

異或也叫半加運算,其運演算法則相當於不帶進位的二進位制加法:二進位制下用1表示真,0表示假,則異或的運演算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。

異或略稱為xor、eor、ex-or

程式中有三種演運算元:xor、xor、⊕。

使用方法如下

z = x ⊕ y

z = x xor y

在c語言中異或的用法是什麼?

5樓:

異或是一個數**算符。它應用於邏輯運算。

在【布林值運算】中:真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。

在【二進位制值運算】中:不同為1,相同為0,如1001異或1010等於0011。

異或也叫半加運算,其運演算法則相當於不帶進位的二進位制加法:二進位制下用1表示真,0表示假,則異或的運演算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。

c語言裡的按位異或運算子

6樓:靠名真tm難起

按位異或,其操作符為^,形式為

a^b計算時,根據運算元a和b每位的值,計算結果,當a,b的對應位上值相同時,結果的該位上值為0,否則值為1。

如char a = 0x12, b = 0x34;

a^b= 0x12 ^ 0x34

= b0001 0010 ^ b0011 0100= b0010 0110

=0x26

7樓:夜微空

(|1:「按位與」運算子(&)全1為1,有0則0。0&0=0,1&0=0,1&1=1

2:「按位或」運算子(|)有1則1,全0則0。0|0=0,1|0=1, 1|1=1

3:「異或」運算子(^)相同為0,不同為1。0^0=0,1^0=1,1^1=0

8樓:匿名使用者

1:「按位與」運算子(&)用法是如果兩個相應的二進位制位都為1,則該位的結果值為1否則為0。0&0=0,1&0=0,1&1=1

2:「按位或」運算子(|)用法是如果兩個相應的二進位制位有一個為1,則該位的結果值為1否則為0。0&0=0,1&0=0,1&1=1

0,1&0=1,1&1=1

3:「異或」運算子(^)用法是如果兩個相應的二進位制位為同號,則該位的結果值為1否則為0。0&0=1,1&0=0,1&1=1

9樓:通訊工程

以下的 答案中異或,解釋錯誤,相同為0,不同為1

10樓:無殼螃蟹

c語言中^為按位異或運算子,若兩個二進位制位相同,則結果為0,不同為1#include "stdio.h"

main()

函式輸出結果為12

將6和10分別轉換為2進位制數為0110(前邊補了個0)和1010。然後按照定義進行異或運算

0110 a

1010 b

1100 a和b最左邊第一位和第二位不相同,所以分別為1,第三位和第四位相同,所以分別為0

二進位制數1100轉換為10進位制數,結果是12。

11樓:小豬叄兒

a b a xor b

true true false //最大特點在這裡,1 xor 1 = 0

true false true

false true true

false false false

對於電路設計啊什麼的非常實用,平常用的很少。

12樓:程式設計師的每一天

c語言經典例子之使用按位異或運算子

13樓:尺蠖丨蚩

相同取0,不同取1.二目運算

14樓:神一樣的魁苝

|& 按位與

| 按位或

^ 按位異或

1. 按位與運算 按位與運算子"&"是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。

只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。

例如:9&5可寫算式如下: 00001001 (9的二進位制補碼)&00000101 (5的二進位制補碼) 00000001 (1的二進位制補碼)可見9&5=1。

按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 運算 ( 255 的二進位制數為0000000011111111)。

main()

2. 按位或運算 按位或運算子「|」是雙目運算子。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有一個為1時,結果位就為1。參與運算的兩個數均以補碼出現。

例如:9|5可寫算式如下: 00001001|00000101

00001101 (十進位制為13)可見9|5=13

main()

3. 按位異或運算 按位異或運算子「^」是雙目運算子。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。

參與運算數仍以補碼出現,例如9^5可寫成算式如下: 00001001^00000101 00001100 (十進位制為12)

main()

c語言,怎麼打 異或 運算子

15樓:匿名使用者

c語言的異或操作是位操作的一種,其運算子號為^。

要打出這個符號,需要在英文輸入法下,輸入shift + 6即 1 按下shift, 左右均可;

2 按6, 即按下,抬起;

3 抬起shift。

異或操作是按位操作,當兩個運算元同一位上值相同時(同為1或同為0),結果對應位上的值為0;否則值為1。

16樓:匿名使用者

回車鍵的上面有一個"\"鍵。你按"shift 鍵+\ 鍵"就出來"||"了,這些全是組合鍵,要按出這些字元來,都要按shift鍵

17樓:匿名使用者

樓上說的是|或運算子

異或是^ shift+6,不是小鍵盤上的6,是f5下面的6

18樓:凡凡渣渣

你說的是o內的x合成的符號嗎?

19樓:匿名使用者

邏輯異或不就^麼

shift+6

20樓:匿名使用者

異或是^ shift+6

c語言裡異或運算子運算不同位數的數字怎麼辦

21樓:匿名使用者

你的問題c語言會通過隱式型別轉換來完成,無需專門**,也無需你來操心如果我沒理解錯你的問題,你是說類似於32位int與64位long型的異或運算嗎

c語言中會隱式的把int自動擴充套件成long型,然後進行異或運算比如int a =10

long b = 20l;

long c = a ^ b; // a自動擴充套件為long型具體轉換優先順序,可以參考任意一本c語言基礎教程的「型別轉換」一節

請幫我講解一下c語言中的異或運算

22樓:匿名使用者

這是為運算子,變數做運算時要以二進位制進行運算例如:a=5,b=6;我以四個二進位制位來表示這兩個變數(當然在c 的編譯環境下,一般用16或者是32個二進位制位來表示)a:0101 b:

0110

異或的原理是相同為 0 不同為1;所以 a1=a^b 的結果為0011;b=b^a;的結果為0101;a=a^b;的結果為0110 達到了a 和b 交換的目的。

c語言的按位與、或、非、異或都什麼意思。有什麼用

23樓:哇哎西西

這些是位操作運算子:參與運算的量,按二進位制位進行運算。

在計算機中,資料都是以二進位制數形式存放的,位運算就是指對儲存單元中二進位制位的運算。c語言提供6種位運算子。

包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

位運算子 &  |~<<  >>  ∧ 按優先順序從高到低排列的順序是:

位運算子中求反運算「~「優先順序最高,而左移和右移相同,居於第二,接下來的順序是按位與 「&「、按位異或 「∧「和按位或 「|「。順序為~  <<  >>  &  ∧  |  。

24樓:匿名使用者

位運算子有:&(按位

與)、|(按位或)、^(按位異或)、~ (按位取反)。

優先順序從高到低,依次為~、&、^、|

按位與運算有兩種典型用法,一是取一個位串資訊的某幾位,如以下**擷取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實現。

25樓:小童鞋_成

ddddddddddddddd

c語言裡異或運算是哪個符號?要包含什麼標頭檔案麼

26樓:匿名使用者

c語言中的異或符號是:^ ,輸入方式是****f +6,它是一個內部運算子,不用包含任何檔案。

異或是一個位運算子,它的主要功能如下:

1.與1異或,可以使特定位翻轉;

2.與0異或,保留其值;

3.交換兩值,不使用臨時變數。**:a=a^b;b=b^a;a=a^b。

27樓:匿名使用者

異或是: ^

在數字鍵6上面。

不用調標頭檔案的。

28樓:匿名使用者

與:&&

或:||

運用這兩個運算子不需要包含標頭檔案名

29樓:匿名使用者

不需要包含特殊標頭檔案

#include"stdio.h"

int main()

如何用c語言實現兩個16進位制數的異或

30樓:修者世界

c語言中邏輯運算子號如下:

& 按位與 如果兩個相應的二進位制位都為1,則該位的專結果值為1,否屬則為0

| 按位或 兩個相應的二進位制位中只要有一個為1,該位的結果值為1^ 按位異或 若參加運算的兩個二進位制位值相同則為0,否則為1 ~ 取反

~是一元運算子,用來對一個二進位制數按位取反,即將0變1,將1變0所以異或運算子^就可以實現兩個十六進位制數的異或比如a=0x45,b=0xa2;

y=a^b;

c語言賦值運算子,C語言賦值運算子

a a a a 分步 1 a a a a a 9 a 9 a a 9,a 6 2 a 6 a 6 6 a 12a a a a 1 a a a 9 2 a 9 a 9 9 a 0 3 a 0 a 0 在c語言中11種賦值運算子的具體含義,用法?1.六個變數 表示式的賦值 是賦值運算子,是除後賦值,是乘...

c語言運算子 和各有什麼功能,C語言運算子 和 各有什麼功能?

表示按位或,規則是一個為1或二個都為1,結果為1,表示按位異或,規則是相同為0,相異為1。首先把兩個運算元化成二進位制,然後按位進位制操作 5 35的二進位制00000101 3的二進位制00000011 00000111 化為十進位制是7 5 35的二進位制00000101 3的二進位制00000...

c語言運算子和的區別C語言運算子和的區別

是位運算子,也就是二進位制計算 07h 111b fch 11111100b 07h fch 100b 4h 是邏輯運算子,0代表false,其他數值代表true 一般用1表示 07h 不是0,所以為true fch 不是0,所以為true true true 的結果為 true,用1表示,所以07...