㈠ 在c語言中異或的用法是什麼
異或是一個數學運算符。它應用於邏輯運算。
在【布爾值運算】中:真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。
在【二進制值運算】中:不同為1,相同為0,如1001異或1010等於0011。
異或也叫半加運算,其運演算法則相當於不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運演算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。
㈡ 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、概念:參加運算的兩個對象,按二進制位進行「與」運算,負數按補碼形式參加按位與運算。
2、運算規則:0&0=0; 0&1=0;1&0=0;1&1=1;即:兩位同時為「1」,結果才為「1」,否則為0【有0則0】
例如:3&5=1,即0000 0011 & 0000 0101 = 0000 0001
3、「與運算」特殊用途:
(1)清零。如果想將一個單元清零,即使其全部二進制位為0,只要與一個各位都為零的數值相與,結果為零。
(2)取一個數中指定位。找一個數,對應X要取的位,該數的對應位為1,其餘位為零,此數與X進行「與運算」可以得到X中的指定位。
例:設X=10101110,取X的低4位,用 X & 0000 1111 = 0000 1110 即可得到;還可用來取X的2、4、6位。
二、按位或(|)
1、概念:參加運算的兩個對象按二進制位進行「或」運算,負數按補碼形式參加按位與運算。
2、運算規則:0|0=0;0|1=1;1|0=1;1|1=1;即 :參加運算的兩個對象只要有一個為1,其值為1【有1則1】
例如:3|5=7,即 0000 0011 | 0000 0101 = 0000 0111
3、「或運算」特殊作用:
(1)常用來對一個數據的某些位置1。找到一個數,對應X要置1的位,該數的對應位為1,其餘位為零。此數與X相或可使X中的某些位置1。
例:將X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。
三、異或運算(^)
1、概念:參加運算的兩個數據,按二進制位進行「異或」運算
2、運算規則:0^0=0;0^1=1;1^0=1;1^1=0;即:參加運算的兩個對象,如果兩個相應位為「異」(值不同),則該位結果為1,否則為0【同0異1】
例如:3^5=6,即0000 0011^0000 0101 = 0000 0110
3、「異或運算」特殊作用:
(1)使特定位翻轉 找一個數,對應X要翻轉的各位,該數的對應位為1,其餘位為零,此數與X對應位異或即可。
(2)與0相異或,保留原值 ,X ^ 0000 0000 = 1010 1110。
例:X=10101110,使X低4位翻轉,用X ^ 0000 1111 = 1010 0001即可得到。
(3)基於異或運算,不引用新變數交換兩個變數的值
a = a ^ b; b = a ^ b; a = a ^ b;
【同樣基於加減法的話有:a = a + b; b = a - b; a = a -b;】
四、不同長度的數據進行位運算
如果兩個不同長度的數據進行位運算時,系統會將二者按右端對齊,然後進行位運算。
以「與」運算為例說明如下:我們知道在C語言中long型佔4個位元組,int型佔2個位元組,如果一個long型數據與一個int型數據進行「與」運算,右端對齊後,左邊不足的位依下面三種情況補足,
(1)如果整型數據為正數,左邊補16個0。
(2)如果整型數據為負數,左邊補16個1。
(3)如果整形數據為無符號數,左邊也補16個0。
如:long a=123;int b=1;計算a & b。
如:long a=123;int b=-1;計算a & b。
如:long a=123;unsigned int b=1;計算a & b。
㈣ C語言的按位與、或、非、異或都什麼意思。有什麼用
這些是位操作運算符:參與運算的量,按二進制位進行運算。
在計算機中,數據都是以二進制數形式存放的,位運算就是指對存儲單元中二進制位的運算。C語言提供6種位運算符。
包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。
位運算符 & |~<< >> ∧ 按優先順序從高到低排列的順序是:
位運算符粗皮中求反運算「~「優先順序最高,而左移和右移相同,居於第二,接下來的順序是按位與 「&「、按位異或 「∧「和按位或 「|「。順序為~ << >> & ∧ | 。
(4)c語言的異或啥意思擴展閱讀:
例:設二進睜凳寬制數a是00101101 ,若通過異或運算a∧b 使a的高4位取反,低4位不變,則二進制數b是。
解析:異或運算常用來使特定位翻轉,只要使需翻轉的位與1進行異或操作就可以了,因為原數中值為1的位與1進行異或運算得0 ,原數中值為0的位與1進行異或運算結果得1。而與0進行異或的位將保持原值。異或運算還可用來交換兩個值,不用臨時變數。
如 int a=3 , b=4;,想將a與b的值互換,悉亮可用如下語句實現:
a=a∧b;
b=b∧a;
a=a∧b;
所以本題的答案為: 11110000 。
㈤ C語言的按位與、或、非、異或都什麼意思。有什麼用
位運算符有:&(按位與)、|(按位或)、^(按位異或)、~
(按位取反)。
優先順序從高到低,依次為~、&、^、|
按位與運算有兩種典型用法,一是取一個位串信息的某幾位,如以下代碼截取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實現。
㈥ c語言中同或、異或怎麼表示
同&&
或||
異!
拓展資料:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。[1]目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
㈦ 異或是什麼意思
問題一:計算機術語中"異或"是什麼意思? 1、異或是一個數學運算符。他應用於邏輯運算。
2、例如:真異或假結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值相 異結果為真。
問題二:「異或」是什麼意思 40分 0^0=0
0^1=1
1^0=1
1^1=0
簡單說,就是不同為1,相同為0
問題三:或 異或 與 or xor and分別代表什麼意思 OR是或運算,A OR B的結果:當A、B中只要有一個或者兩個都為1時,結果為1,否則為0 XOR是異或運算,A XOR B的結果咐如:當A、B兩個不同時結果為1,否則為0 上面是對於數字運算而言,如果是邏輯運算,把上面兩句話的1替換為「真」、0替換為「假」即可。
問題四:c語言按位異或什麼意思? 參與運算的兩個值(該數值得用二進製表示),如果兩個相應位相同,則結果為0,否則為1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0
例如:10100001^00010001=10110000
0^0=0,0^1=1 0異或任何數=任何數
1^0=1,1^1=0 1異或任何數-任何數取激
任何數異或自己=把自己置0
問題五:邏輯異或運算是什麼 在C++中用 ^ 運算符實現按位異定運算。
expression1^expression2
參與運算的兩個值,如果兩個相應bit位相同,則結果為0,否則為1。 即:
0^0 = 0,
1^0 = 1,
0^1 = 1,
1^1 = 0
簡單說,異或就是相同的出1,不同的出0
問題六:請問什麼是異或校驗? xor異或運算公式
1、邏輯加法(「或」運算)
邏輯加法通常用符號「+」或「∨」來表示。邏輯加法運算規則如下:
0+0=0, 0∨0=0
0+1=1, 0∨1=1
1+0=1, 1∨0=1
1+1=1, 1∨1=1
從上式衡慧啟可見,邏輯加法有「或」的意義。也就是說,在給定的邏輯變數中,A或B只要有一個為1,其邏輯加的結果為1;兩者都為1則邏輯加為1。
2、邏輯乘法(「與」運算)
邏輯乘法通常用符號「×」或「∧」或「・」來表示。邏輯乘法運算規則如下:
0×0=0, 0∧0=0, 0・0=0
0×1=0, 0∧1=0, 0・1=0
1×0=0, 1∧0=0, 1・0=0
1×1=1, 1∧1=1, 1・1=1
不難看出,邏輯乘法有「與」的意義。它表示只當參與運算的邏輯變數都同時取值為1時,其邏輯乘積才等於1。
3、邏輯否定(非運算)
邏輯非運算又稱邏輯否運算。其運算規則為:
0=1 非0等於1
1=0 非1等於0
4、異或邏輯運算(半加運算)
異或運算通常用符號表示,其運算規則為:
00=0 0同0異或,結果為0
01=1 0同1異或,結果為1
10=1 1同0異或,結果為1
11=0 1同1異或,結果為0
即兩個邏輯變數相異,輸出才為1
異或校驗演算法(又稱為BCC校驗)
常見的校驗方法有:奇偶校驗、循環冗餘校驗CRC、異或校驗、校驗碧迅和、漢明校驗
搞了半天,異或校驗就是偶校驗
下面就是異或校驗的演算法,多用於串口通信。其它校驗方法以後用到再研究吧!
#include stdio.h
void main()
{
int i;
任意10個數值,也可以不是8位
unsigned char data[10]={0x12,0x21,0x1A,0xB1,0xC1,0xEB,0xDF,0xCA,0xF6,0xDD};
unsigned char out;用於保存異或結果
out=0x00;
for (i=0;i>
㈧ C語言里的按位異或運算符
異或運算符∧也稱XOR運算符,它的作用是判斷參加運算的兩個二進制位是否為同號,若同號則結果為0;異號則為1。即0異或0=0,1異或0=1,1異或1=0。
應用:
1、使特定位翻轉。假設有01111010,想余消飢使其低4位翻轉。可以將它與0000111進行異或運算,結果為01110101。
2、與0異或,保留原值。如012異或00=012.
3、交換兩個值,不用臨時變數。假如a=3,b=4。想將a和b的值互換,可以用以下賦值語句實現:
a=a異或b;
b=b異或a;
a=a異或b;
㈨ c語言中同或、異或怎麼表示
異或有專門的操作符^,比如int
a,b,c,d;c=a^b;,則表示c是a與b異或的結果。C中雖然沒有同或操作符,但由邏輯關系知同或是異或的非,所以d=!(a^b);,那麼d就是a與b同或的結果。
㈩ 計算機術語中"異或"是什麼意思
異或,英文為exclusive OR,縮寫成xor。異或(xor)是一個數學運算符。它應用於邏輯運算。異或的數學符號為「⊕」,計算機符號為「xor」。
其運演算法則為:
a⊕b = (¬a ∧ b) ∨ (a ∧¬b),如果a、b兩個值不相同,則異或結果為1。如果a、b兩個值相同,異或結果為0。
運算方法如下:
真⊕假=真
假⊕真=真
假⊕假=假
真⊕真=假
或者為:
True ⊕ False = True
False ⊕ True = True
False ⊕ False = False
True ⊕ True = False
拓展資料
異或也叫半加運算,其運演算法則相當於不帶進位的二進制加法:二進制下用1表示真,此凱0表示假,則異或的運演算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1),這滲扒鬧些法則與加法是叢罩相同的,只是不帶進位,所以異或常被認作不進位加法。
在計算機中普遍運用,異或(xor)的邏輯符號一般用xor,也有用⊕的:真⊕假=真、假⊕真=真、假⊕假=假、真⊕真=假
C語言和C++語言的異或不用xor,而是用「^」,鍵入方式為Shift+6。(而其它語言的「^」一般表示乘方)
資料來源:網路《異或》