c語言異或操作,C語言裡的按位異或運算子

2021-03-04 05:06:07 字數 6072 閱讀 5044

1樓:匿名使用者

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

int ctoi(char c)

char itoc(int i)

int main()

printf("%s\n",c);

return 0;}

2樓:星月小木木

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

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

2 按6, 即按下,抬起;

3 抬起shift。

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

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

3樓:靠名真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

4樓:夜微空

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

5樓:匿名使用者

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

6樓:通訊工程

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

7樓:無殼螃蟹

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。

8樓:小豬叄兒

a b a xor b

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

true false true

false true true

false false false

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

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

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

10樓:尺蠖丨蚩

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

11樓:神一樣的魁苝

|& 按位與

| 按位或

^ 按位異或

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語言中異或的用法是什麼?

12樓:

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

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

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

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

c語言 異或 運算子的使用

13樓:千鋒教育

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

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

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

14樓:雨夜

#include

void main()

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

15樓:匿名使用者

^異或運算相當於不進製的加法運算,就是相同的變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

16樓:一生有你乀

異或也叫半加運算,其運算法則相當於不帶進製的二進位制加法:二進位制下用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語言,怎麼打 異或 運算子

17樓:匿名使用者

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

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

2 按6, 即按下,抬起;

3 抬起shift。

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

18樓:匿名使用者

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

19樓:匿名使用者

樓上說的是|或運算子

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

20樓:凡凡渣渣

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

21樓:匿名使用者

邏輯異或不就^麼

shift+6

22樓:匿名使用者

異或是^ shift+6

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

23樓:

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

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

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

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

24樓:匿名使用者

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

2.與0異或,保留其值

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

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

25樓:

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

26樓:夜禮服假面

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

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

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

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

2.與0異或,保留其值

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

c語言中不提供「同或」運算,似乎只有異或,異或得反就是同或

27樓:匿名使用者

同&&或||

異!拓展資料:

c語言是一門通用計算機程式語言,廣泛應用於底層開發。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平台的特性,以乙個標準規格寫出的c語言程式可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平台。

二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言制定了一套完整的美國國家標準語法,稱為ansi c,作為c語言最初的標準。 [1]  目前2023年12月8日,國際標準化組織(iso)和國際電工委員會(iec)釋出的c11標準是c語言的第三個官方標準,也是c語言的最新標準,該標準更好的支援了漢字函式名和漢字識別符號,一定程度上實現了漢字程式設計。

c語言是一門面向過程的計算機程式語言,與c++,java等物件導向的程式語言有所不同。

其編譯器主要有clang、gcc、win-tc、sublime、msvc、turbo c等。

c語言的異或運算

28樓:匿名使用者

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

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

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

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

C語言的檔案訪問,C語言檔案操作

先定義乙個檔案指標 file fp 然後給它賦值 fp fopen 要訪問的檔名,r 然後就可以從檔案中讀取資料了。其中檔名要以字串的形式出現,比如我要開啟c盤根目錄下的,就要寫成。fp fopen c 路徑中的所有的 都要用轉義字元 替換掉,否則的話c的編譯器會把 後面的乙個字元當成轉義字元的引數...

為什麼C中常用按位異或的方式改變引數本身

位運算比邏輯運算快 就像整數除以2一般寫作右移一位 以效率著稱的c.c 這些還是很講究的 尤其在晶元裡 c 語言中按位異或賦值是什麼意思 c 中資料一般都是按照多少位元組來儲存的,而我們知道乙個位元組是有8位,記憶體中每一位要麼是1要麼是0,邏輯運算異或的運算法則為a異或b a b或ab a 為非a...

c語言中異或在什麼情況下可以當加法操作使用

當a b 0的時候a b a b 事實上,你只要每次把a b的值左移一位,再一次異或在a b的結果上,一次次做到a b 0時,也是乙個做加法的方法 c語言異或操作 你是打算對數字進行異或,需要將字元變成數字,異或完後再變回字元我只簡單寫了一下,沒有異常處理,順便說你b中f少了乙個 include i...