1、首先,我們看一下異或的原理:a = 3 ^ 5;3的二進制是0011,5的二進制是0101。異或發(fā)現(xiàn)兩者的不同之處,所以a最終為0110b(4)。了解了異或的基本原理后,接下來看上述的代碼。

目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡空間、綿陽服務器托管、企業(yè)網(wǎng)站設(shè)計、沁縣網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
2、1001 異或的作用:2個操作數(shù)對應位不同則為1,相同的則為0。
3、C語言的異或操作是位操作的一種,其運算符號為^。要打出這個符號,需要在英文輸入法下,輸入shift + 6 即 1 按下shift, 左右均可;2 按6, 即按下,抬起;3 抬起shift。
c語言異或加密實現(xiàn)的原理為,將任意值,與相同值兩次異或后,結(jié)果與原值相同。所以可以通過將源數(shù)據(jù)與一個固定的值(秘鑰key)異或后,得到密文,然后將密文再次與秘鑰異或,得到原文。這樣就實現(xiàn)了異或加密及解密。
異或也叫半加運算,其運算法則相當于不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。
然后:b^=a;這一句用異或利用“差異值”來還原a的數(shù)值,并賦值給b。此時b等于a先前的數(shù)值。最后一句:a^=b;因為a仍然保存著“差異值”,這一句通過異或使得b的初始值被還原,并賦值給a。。
按位異或,其操作符為^,形式為a^b計算時,根據(jù)操作數(shù)a和b每位的值,計算結(jié)果,當a,b的對應位上值相同時,結(jié)果的該位上值為0,否則值為1。
C語言位運算符:與、或、異或、取反、左移和右移 位運算是指按二進制進行的運算。在系統(tǒng)軟件中,常常需要處理二進制位的問題。C語言提供了6個位操作運算符。
異或的意思就是相異為真。現(xiàn)在問題主要是出現(xiàn)在這一句。b[--i]=a[j]^a[--j];注意啦。編譯器編譯的時候是從后向前的。也就是先算a[--j],這樣j就先自減了。j從3變?yōu)?。
異或有專門的操作符^,比如int a,b,c,d;c=a^b;,則表示c是a與b異或的結(jié)果。C中雖然沒有同或操作符,但由邏輯關(guān)系知同或是異或的非,所以d=!(a^b);,那么d就是a與b同或的結(jié)果。
同或:b=ab+a‘b’。異或(exclusive OR,縮寫成xor)是一個數(shù)學運算符。它應用于邏輯運算。異或的數(shù)學符號為“⊕”,計算機符號為“xor”。其運算法則為:a⊕b = (a ∧ b) ∨ (a ∧b)。
異或也叫半加運算,其運算法則相當于不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。
新聞名稱:c語言編寫異或函數(shù) c語言異或代碼
標題來源:http://chinadenli.net/article26/deeehcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務、網(wǎng)站設(shè)計公司、網(wǎng)站排名、建站公司、網(wǎng)站營銷、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)