當前位置:首頁 » 編程語言 » c語言中異或是什麼意思
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中異或是什麼意思

發布時間: 2022-05-06 03:43:27

『壹』 請幫我講解一下c語言中的異或運算

首先,我們看一下異或的原理:
a = 3 ^ 5;
3的二進制是0011,5的二進制是0101。異或發現兩者的不同之處,所以a最終為0110b(4)。
了解了異或的基本原理後,接下來看上述的代碼。
a^=b;
這一句使得a被賦值為「數值a」與「數值b」的「差異值」。
然後:b^=a;
這一句用異或利用「差異值」來還原a的數值,並賦值給b。此時b等於a先前的數值。
最後一句:a^=b;
因為a仍然保存著「差異值」,這一句通過異或使得b的初始值被還原,並賦值給a。
。。。。。
這樣,異或就將a與b的數值「巧妙」地交換了……
我也是網路的,和樓主一起學習…………

『貳』 c語言異或操作

c語言異或加密實現的原理為,將任意值,與相同值兩次異或後,結果與原值相同。所以可以通過將源數據與一個固定的值(秘鑰key)異或後,得到密文,然後將密文再次與秘鑰異或,得到原文。這樣就實現了異或加密及解密。
c語言中的異或是一種按位操作的計算,其計算原理為,操作數對應位上的值相同,則結果位上值為0,否則為1.異或的運算符號為^,於是真值表如下:
0^0=0
0^1=1
1^0=1
1^1=0
這樣區分源數據和秘鑰值,有如下四種可能:
0^0=0
0^0=0
0^1=1
1^1=0
1^0=1
1^0=1
1^1=0
0^1=1
以上是將一個值,用另一個值連續異或兩次後的計算過程,可以看到,最終的值與原始值是相同的。這就是異或加密的基礎原理。

『叄』 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語言里「^」符號是什麼意思……

在C語言里這個符號「 ∧ 」表示「按位異或」運算符。

例:

^ 按位異或

AND (位與&) OR ( 位或| ) XOR ( 位異或^ )

1 & 1 = 1, 1 | 1 = 1, 1 ^ 1 = 0

1 & 0 = 0, 1 | 0 = 1, 1 ^ 0 = 1

0 & 1 = 0, 0 | 1 = 1, 0 ^ 1 = 1

0 & 0 = 0, 0 | 0 = 0, 0 ^ 0 = 0

(4)c語言中異或是什麼意思擴展閱讀

C語言運算符

1、減法運算符

在C語言中,減法運算符的符號是"-"。它的作用是前面的數減去後面的數。

如:printf("%d ",9-4);將列印5這個數值而不是9-4。

2、符號運算符

符號"-"和"+"放在一個操作數的前面,表示這個數的是正數和負數。這點和數學中是一樣的。

3、乘法運算符

在C語言中,乘法運算符的符號是"*"。它的作用是它的兩側的值被相乘到一起。

如:printf("%d ",4*5);將列印20這個數值而不是4*5。

『伍』 c語言里異或運算是哪個符號要包含什麼頭文件么

C語言中的異或符號是:^ ,輸入方式是shitf +6,它是一個內部運算符,不用包含任何文件。

異或是一個位運算符,它的主要功能如下:
1.與1異或,可以使特定位翻轉;
2.與0異或,保留其值;
3.交換兩值,不使用臨時變數。代碼: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同或的結果。

『柒』 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

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

『玖』 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語言 異或 運算符的使用

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