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...