最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
異或運算c語言函數 異或 c語言

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

1、概念:參加運算的兩個對象,按二進制位進行“與”運算,負數按補碼形式參加按位與運算。

創(chuàng)新互聯建站是專業(yè)的金昌網站建設公司,金昌接單;提供成都做網站、網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行金昌網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!

2、運算規(guī)則:00=0; 01=0;10=0;11=1;即:兩位同時為“1”,結果才為“1”,否則為0【有0則0】

例如:35=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、運算規(guī)則: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、運算規(guī)則: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;】

四、不同長度的數據進行位運算

如果兩個不同長度的數據進行位運算時,系統(tǒng)會將二者按右端對齊,然后進行位運算。

以“與”運算為例說明如下:我們知道在C語言中l(wèi)ong型占4個字節(jié),int型占2個字節(jié),如果一個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語言中的異或運算

首先,我們看一下異或的原理:

a = 3 ^ 5;

3的二進制是0011,5的二進制是0101。異或發(fā)現兩者的不同之處,所以a最終為0110b(4)。

了解了異或的基本原理后,接下來看上述的代碼。

a^=b;

這一句使得a被賦值為“數值a”與“數值b”的“差異值”。

然后:b^=a;

這一句用異或利用“差異值”來還原a的數值,并賦值給b。此時b等于a先前的數值。

最后一句:a^=b;

因為a仍然保存著“差異值”,這一句通過異或使得b的初始值被還原,并賦值給a。

。。。。。

這樣,異或就將a與b的數值“巧妙”地交換了……

我也是百度的,和樓主一起學習…………

C語言的異或運算

機內碼(補碼):

23: 00000000,00010111

2: 00000000,00000010

5: 00000000,00000101

異或優(yōu)先級高,先算異或,再算位或

2^5,2與5異或,異或的法則是相同的為0,不同的為1,由上面的二進制很明顯結果為:00000000,00000111

再算位或,23與此結果求或,很顯然仍然為:00000000,00010111 即結果是23。

c語言異或操作

c語言異或加密實現的原理為,將任意值,與相同值兩次異或后,結果與原值相同。所以可以通過將源數據與一個固定的值(秘鑰key)異或后,得到密文,然后將密文再次與秘鑰異或,得到原文。這樣就實現了異或加密及解密。

c語言中的異或是一種按位操作的計算,其計算原理為,操作數對應位上的值相同,則結果位上值為0,否則為1.異或的運算符號為^,于是真值表如下:

0^0=0

0^1=1

1^0=1

1^1=0

這樣區(qū)分源數據和秘鑰值,有如下四種可能:

0^0=0

0^0=0

0^1=1

1^1=0

1^0=1

1^0=1

1^1=0

0^1=1

以上是將一個值,用另一個值連續(xù)異或兩次后的計算過程,可以看到,最終的值與原始值是相同的。這就是異或加密的基礎原理。


網站名稱:異或運算c語言函數 異或 c語言
文章網址:http://fisionsoft.com.cn/article/doigsjg.html