c語言里的按位異或運算符

按位異或,其操作符為^,形式為
a^b
計算時,根據操作數a和b每位的值,計算結果內,當a,b的對應位上值相同時容,結果的該位上值為0,否則值為1。

char a = 0x12, b = 0x34;
a^b
= 0x12 ^ 0x34
= B0001 0010 ^ B0011 0100
= B0010 0110
=0x26

(1)c語言中異或擴展閱讀:

異或,英文為exclusive OR,縮寫成xor異或(xor)是一個數學運算符。它應用於邏輯運算。異或的數學符號為「⊕」,計算機符號為「xor」。其運演算法則為:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)

如果a、b兩個值不相同,則異或結果為1。如果a、b兩個值相同,異或結果為0。

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

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

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

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

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

③ C語言的異或運算

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

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

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

④ c語言異或操作

你是打算對數字進行異或,需要將字元變成數字,異或完後再變回字元
我只簡單寫了一下,沒有異常處理,順便說你b中F少了一個

#include <stdio.h>

int ctoi(char c)
{
if(c>='0'&&c<='9')
return c-48;
else if(c>='A'&&c<='F')
return c-55;
else if(c>='a'&&c<='f')
return c-87;
else
return -1;
}

char itoc(int i)
{
if(i>=0&&i<=9)
return i+48;
else if(i>=10&&i<=15)
return i+55;
else
return 0;
}

int main()
{
char *a="0000400000123456";
char *b="0592389FFFFFFFFF";
char *c="0000000000000000";
int i=0;
int ai,bi,ci;
while(a[i])
{
ai=ctoi(a[i]);
bi=ctoi(b[i]);
ci=ai^bi;
c[i]=itoc(ci);
i++;
}
printf("%s\n",c);
return 0;
}

⑤ C語言中的異或符號是什麼

在c語言中異或的用法,也就這個「^"符號

⑥ c語言按位異或什麼意思

按位異或,其操作符為^,形式為
a^b
計算時,根據操作數a和b每位的值版,計算結果,當a,b的對權應位上值相同時,結果的該位上值為0,否則值為1。

char a = 0x12, b = 0x34;
a^b
= 0x12 ^ 0x34
= B0001 0010 ^ B0011 0100
= B0010 0110
=0x26

⑦ c語言中同或、異或怎麼表示

異或有專門的操作符^,比如int
a,b,c,d;c=a^b;,則表示c是a與b異或的結果。C中雖然沒有同或操作符,但由邏輯關系知同或是異或的非,所以d=!(a^b);,那麼d就是a與b同或的結果。

⑧ 請問C語言中的邏輯異或^怎麼用

必須不同才為真(1),否則為假(0)
例如兩個2進制數異或
10110100
01101010
11011110
第三行為上面兩行2進制數異或的結果

⑨ C語言 異或 運算符的使用

異或的意思就是相異為真。。
現在問題主要是出現在這一句。。
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。。
有什麼地方解釋不清的可以再問我。。嘿嘿。。

⑩ 求在c語言中異或的用法,也就這個「^"符號,謝謝

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

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

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