1樓:匿名使用者
異或是一個數**算符。它應用於邏輯運算。
在【布林值運算】中:真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。
在【二進位制值運算】中:不同為1,相同為0,如1001異或1010等於0011。
異或也叫半加運算,其運演算法則相當於不帶進位的二進位制加法:二進位制下用1表示真,0表示假,則異或的運演算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。
2樓:匿名使用者
機內碼(補碼):
23: 00000000,000101112: 00000000,000000105: 00000000,00000101異或優先順序高,先算異或,再算位或
2^5,2與5異或,異或的法則是相同的為0,不同的為1,由上面的二進位制很明顯結果為:00000000,00000111
再算位或,23與此結果求或,很顯然仍然為:00000000,00010111 即結果是23。
3樓:匿名使用者
23 先算^,後算|
有優先順序別的.
c語言裡的按位異或運算子
4樓:靠名真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
5樓:夜微空
(|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
6樓:匿名使用者
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
7樓:通訊工程
以下的 答案中異或,解釋錯誤,相同為0,不同為1
8樓:無殼螃蟹
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。
9樓:小豬叄兒
a b a xor b
true true false //最大特點在這裡,1 xor 1 = 0
true false true
false true true
false false false
對於電路設計啊什麼的非常實用,平常用的很少。
10樓:程式設計師的每一天
c語言經典例子之使用按位異或運算子
11樓:尺蠖丨蚩
相同取0,不同取1.二目運算
12樓:神一樣的魁苝
|& 按位與
| 按位或
^ 按位異或
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語言 異或運算
13樓:匿名使用者
#include
#include
#include
int main()
printf("請輸入金鑰,並牢記,解密時要再次輸入:");//只要再對加密的檔案再進行一次異或運算就得到原始檔
n=getch();
printf("*\n");
while(1)
fclose(p1);
fclose(p2);
return 0;}
14樓:杭嘉澍鄔鑫
上式相當於b^=a;a^=b;因此,a=b=233。相當於,a^b^a,得到b原來的值。
c語言 異或 運算子的使用
15樓:千鋒教育
異或的意思就是相異為真。。
現在問題主要是出現在這一句。。
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
16樓:雨夜
#include
void main()
直接用異或符號^,得到的是數字9,因為設定輸出是%d
17樓:匿名使用者
^異或運算相當於不進位的加法運算,就是相同的變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
18樓:一生有你乀
異或也叫半加運算,其運演算法則相當於不帶進位的二進位制加法:二進位制下用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語言,怎麼打 異或 運算子
19樓:匿名使用者
c語言的異或操作是位操作的一種,其運算子號為^。
要打出這個符號,需要在英文輸入法下,輸入shift + 6即 1 按下shift, 左右均可;
2 按6, 即按下,抬起;
3 抬起shift。
異或操作是按位操作,當兩個運算元同一位上值相同時(同為1或同為0),結果對應位上的值為0;否則值為1。
20樓:匿名使用者
回車鍵的上面有一個"\"鍵。你按"shift 鍵+\ 鍵"就出來"||"了,這些全是組合鍵,要按出這些字元來,都要按shift鍵
21樓:匿名使用者
樓上說的是|或運算子
異或是^ shift+6,不是小鍵盤上的6,是f5下面的6
22樓:凡凡渣渣
你說的是o內的x合成的符號嗎?
23樓:匿名使用者
邏輯異或不就^麼
shift+6
24樓:匿名使用者
異或是^ shift+6
請幫我講解一下c語言中的異或運算
25樓:匿名使用者
這是為運算子,變數做運算時要以二進位制進行運算例如: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語言中1^8怎麼算?^是按位異或運算子
26樓:匿名使用者
1和8都是int型,且都是正整數,記憶體中原碼形式儲存
1的原碼是00000000 00000000 00000000 0000001
8的原碼是00000000 00000000 00000000 0001000
按位異或,顧名思義是對應的二進位制位計算,口訣相同0,相異為1.就是對應的二進位制位,相同的話該二進位制位計算出來是0,不同的話計算出來才是1
舉例:0
^ 0-----
0***************1^1
---------
0************0^1
------------
1**************************************
所以00000000 00000000 00000000 0000001
^00000000 00000000 00000000 0001000
00000000 00000000 00000000 0001001
這個二進位制數按照原碼解釋,對應9
所以結果是9
27樓:匿名使用者
先把十進位制的1和8轉換成二進位制,然後進行位運算之後再把結果轉換成十進位制就ok了。
1 : 0000 0001
^8 :0000 1000
=0000 1001 也就是十進位制的 8 + 1 = 9
c語言裡異或運算子運算不同位數的數字怎麼辦
28樓:匿名使用者
你的問題c語言會通過隱式型別轉換來完成,無需專門**,也無需你來操心如果我沒理解錯你的問題,你是說類似於32位int與64位long型的異或運算嗎
c語言中會隱式的把int自動擴充套件成long型,然後進行異或運算比如int a =10
long b = 20l;
long c = a ^ b; // a自動擴充套件為long型具體轉換優先順序,可以參考任意一本c語言基礎教程的「型別轉換」一節
c語言裡異或運算是哪個符號?要包含什麼標頭檔案麼
29樓:匿名使用者
c語言中的異或符號是:^ ,輸入方式是****f +6,它是一個內部運算子,不用包含任何檔案。
異或是一個位運算子,它的主要功能如下:
1.與1異或,可以使特定位翻轉;
2.與0異或,保留其值;
3.交換兩值,不使用臨時變數。**:a=a^b;b=b^a;a=a^b。
30樓:匿名使用者
異或是: ^
在數字鍵6上面。
不用調標頭檔案的。
31樓:匿名使用者
與:&&
或:||
運用這兩個運算子不需要包含標頭檔案名
數電中如何把a異或b異或c轉化為與非表示式
先列真值表,讓f a異或b異或c。可知當abc為001,010,100,111時f為1,然後畫卡諾圖,四個1都不相鄰,得 f a bc a b c ab c abc,a 就是a非的意思 然後對f兩次取反,就得到 f a bc a b c ab c abc 這就是與非表示式了。a異或b轉換成與非門是什...
c語言中,運算順序是 算數運算 關係運算 邏輯運算 賦值運算嗎?為什麼070不算算數運算
首先,你確來認你的 運算子正自確使用了 bai麼?常量不可以 du 運算的 其次zhi,你要注意 在前和dao 在後的區別,在前的時候是先算這個 運算,然後取所有 運算的值並計算表示式,在後的時候正好相反,要先取所有 運算的值並計算表示式,然後才進行 運算,比如說 a b 要先算 b 前提是a的值非...
c語言位運算的問題,C語言中的位運算有什麼優點?
的優先順序比 高,的優先順序也比 高,所以k i j 3 實為k i 專 j 3 屬i 013 00000000 00001011 0打頭的是八進位制 所以 i 11111111 11110100 j 0x13 00000000 00010011,j 3 00000000 00010011 3 00...