成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

c語言異或函數(shù) c語言的異或運(yùn)算符

請幫我講解一下C語言中的異或運(yùn)算

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

在松北等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需求定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),松北網(wǎng)站建設(shè)費(fèi)用合理。

a = 3 ^ 5;

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

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

a^=b;

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

然后:b^=a;

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

最后一句:a^=b;

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

。。。。。

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

我也是百度的,和樓主一起學(xué)習(xí)…………

c語言異或操作

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

c語言中的異或是一種按位操作的計(jì)算,其計(jì)算原理為,操作數(shù)對應(yīng)位上的值相同,則結(jié)果位上值為0,否則為1.異或的運(yùn)算符號(hào)為^,于是真值表如下:

0^0=0

0^1=1

1^0=1

1^1=0

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

0^0=0

0^0=0

0^1=1

1^1=0

1^0=1

1^0=1

1^1=0

0^1=1

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

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

1、概念:參加運(yùn)算的兩個(gè)對象,按二進(jìn)制位進(jìn)行“與”運(yùn)算,負(fù)數(shù)按補(bǔ)碼形式參加按位與運(yùn)算。

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

例如:35=1,即0000 0011 0000 0101 = 0000 0001

3、“與運(yùn)算”特殊用途:

(1)清零。如果想將一個(gè)單元清零,即使其全部二進(jìn)制位為0,只要與一個(gè)各位都為零的數(shù)值相與,結(jié)果為零。

(2)取一個(gè)數(shù)中指定位。找一個(gè)數(shù),對應(yīng)X要取的位,該數(shù)的對應(yīng)位為1,其余位為零,此數(shù)與X進(jìn)行“與運(yùn)算”可以得到X中的指定位。

例:設(shè)X=10101110,取X的低4位,用 X 0000 1111 = 0000 1110 即可得到;還可用來取X的2、4、6位。

二、按位或(|)

1、概念:參加運(yùn)算的兩個(gè)對象按二進(jìn)制位進(jìn)行“或”運(yùn)算,負(fù)數(shù)按補(bǔ)碼形式參加按位與運(yùn)算。

2、運(yùn)算規(guī)則:0|0=0;0|1=1;1|0=1;1|1=1;即 :參加運(yùn)算的兩個(gè)對象只要有一個(gè)為1,其值為1【有1則1】

例如:3|5=7,即 0000 0011 | 0000 0101 = 0000 0111

3、“或運(yùn)算”特殊作用:

(1)常用來對一個(gè)數(shù)據(jù)的某些位置1。找到一個(gè)數(shù),對應(yīng)X要置1的位,該數(shù)的對應(yīng)位為1,其余位為零。此數(shù)與X相或可使X中的某些位置1。

例:將X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。

三、異或運(yùn)算(^)

1、概念:參加運(yùn)算的兩個(gè)數(shù)據(jù),按二進(jìn)制位進(jìn)行“異或”運(yùn)算

2、運(yùn)算規(guī)則:0^0=0;0^1=1;1^0=1;1^1=0;即:參加運(yùn)算的兩個(gè)對象,如果兩個(gè)相應(yīng)位為“異”(值不同),則該位結(jié)果為1,否則為0【同0異1】

例如:3^5=6,即0000 0011^0000 0101 = 0000 0110

3、“異或運(yùn)算”特殊作用:

(1)使特定位翻轉(zhuǎn) 找一個(gè)數(shù),對應(yīng)X要翻轉(zhuǎn)的各位,該數(shù)的對應(yīng)位為1,其余位為零,此數(shù)與X對應(yīng)位異或即可。

(2)與0相異或,保留原值 ,X ^ 0000 0000 = 1010 1110。

例:X=10101110,使X低4位翻轉(zhuǎn),用X ^ 0000 1111 = 1010 0001即可得到。

(3)基于異或運(yùn)算,不引用新變量交換兩個(gè)變量的值

a = a ^ b; b = a ^ b; a = a ^ b;

【同樣基于加減法的話有:a = a + b; b = a - b; a = a -b;】

四、不同長度的數(shù)據(jù)進(jìn)行位運(yùn)算

如果兩個(gè)不同長度的數(shù)據(jù)進(jìn)行位運(yùn)算時(shí),系統(tǒng)會(huì)將二者按右端對齊,然后進(jìn)行位運(yùn)算。

以“與”運(yùn)算為例說明如下:我們知道在C語言中l(wèi)ong型占4個(gè)字節(jié),int型占2個(gè)字節(jié),如果一個(gè)long型數(shù)據(jù)與一個(gè)int型數(shù)據(jù)進(jìn)行“與”運(yùn)算,右端對齊后,左邊不足的位依下面三種情況補(bǔ)足,

(1)如果整型數(shù)據(jù)為正數(shù),左邊補(bǔ)16個(gè)0。

(2)如果整型數(shù)據(jù)為負(fù)數(shù),左邊補(bǔ)16個(gè)1。

(3)如果整形數(shù)據(jù)為無符號(hào)數(shù),左邊也補(bǔ)16個(gè)0。

如:long a=123;int b=1;計(jì)算a b。

如:long a=123;int b=-1;計(jì)算a b。

如:long a=123;unsigned int b=1;計(jì)算a b。

在c語言中異或的用法是什么?

異或是一個(gè)數(shù)學(xué)運(yùn)算符。它應(yīng)用于邏輯運(yùn)算。

在【布爾值運(yùn)算】中:真異或假的結(jié)果是真,假異或真的結(jié)果也是真,真異或真的結(jié)果是假,假異或假的結(jié)果是假。就是說兩個(gè)值不相同,則異或結(jié)果為真。反之,為假。

在【二進(jìn)制值運(yùn)算】中:不同為1,相同為0,如1001異或1010等于0011。

異或也叫半加運(yùn)算,其運(yùn)算法則相當(dāng)于不帶進(jìn)位的二進(jìn)制加法:二進(jìn)制下用1表示真,0表示假,則異或的運(yùn)算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進(jìn)位。

分享題目:c語言異或函數(shù) c語言的異或運(yùn)算符
當(dāng)前路徑:http://jinyejixie.com/article0/dochioo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣手機(jī)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作網(wǎng)站改版定制網(wǎng)站、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
万宁市| 日土县| 同德县| 拜城县| 台江县| 西峡县| 孟津县| 开原市| 垣曲县| 汪清县| 凤山市| 康定县| 江山市| 简阳市| 长垣县| 柯坪县| 闽清县| 曲沃县| 东安县| 云林县| 云阳县| 恭城| 枞阳县| 夏邑县| 华池县| 电白县| 金沙县| 攀枝花市| 中牟县| 全州县| 钟祥市| 宁津县| 丰都县| 鹤壁市| 迁安市| 镇坪县| 巫山县| 呼和浩特市| 昌平区| 本溪| 郴州市|