欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java異或是什么-創(chuàng)新互聯(lián)

這篇文章主要講解了“Java異或是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java異或是什么”吧!

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比昔陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式昔陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋昔陽地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

前言

異或是一種基于二進(jìn)制的位運(yùn)算,用符號XOR或者 ^ 表示,其運(yùn)算法則是對運(yùn)算符兩側(cè)數(shù)的每一個二進(jìn)制位,同值取0,異值取1。

性質(zhì)

1、交換律

2、結(jié)合律(即(a^b)^c == a^(b^c))

3、對于任何數(shù)x,都有x^x=0,x^0=x

4、自反性 A XOR B XOR B = A XOR 0 = A

異或運(yùn)算最常見于多項(xiàng)式除法,不過它最重要的性質(zhì)還是自反性:A XOR B XOR B = A,即對給定的數(shù)A,用同樣的運(yùn)算因子(B)作兩次異或運(yùn)算后仍得到A本身。這是一個神奇的性質(zhì),利用這個性質(zhì),可以獲得許多有趣的應(yīng)用。 例如,所有的程序教科書都會向初學(xué)者指出,要交換兩個變量的值,必須要引入一個中間變量。但如果使用異或,就可以節(jié)約一個變量的存儲空間: 設(shè)有A,B兩個變量,存儲的值分別為a,b,則以下三行表達(dá)式將互換他們的值 表達(dá)式 (值) :

A=A XOR B (a XOR b)B=B XOR A (b XOR a XOR b = a) A=A XOR B (a XOR b XOR a = b)

例:

int a = 10, b = 5a = a ^ b;b = a ^ b;a = a ^ b;

類似地,該運(yùn)算還可以應(yīng)用在加密,數(shù)據(jù)傳輸,校驗(yàn)等等許多領(lǐng)域。

應(yīng)用舉例:1-1000放在含有1001個元素的數(shù)組中,只有的一個元素值重復(fù),其它均只出現(xiàn)一次。每個數(shù)組元素只能訪問一次,設(shè)計一個算法,將它找出來;不用輔助存儲空間,能否設(shè)計一個算法實(shí)現(xiàn)?

解法一、顯然已經(jīng)有人提出了一個比較精彩的解法,將所有數(shù)加起來,減去1+2+...+1000的和。這個算法已經(jīng)足夠完美了,相信出題者的標(biāo)準(zhǔn)答案也就是這個算法,的問題是,如果數(shù)列過大,則可能會導(dǎo)致溢出。

解法二、異或就沒有這個問題,并且性能更好。將所有的數(shù)全部異或,得到的結(jié)果與1^2^3^...^1000的結(jié)果進(jìn)行異或,得到的結(jié)果就是重復(fù)數(shù)。

但是這個算法雖然很簡單,但證明起來并不是一件容易的事情。這與異或運(yùn)算的幾個特性有關(guān)系。首先是異或運(yùn)算滿足交換律、結(jié)合律。

所以,1^2^...^n^...^n^...^1000,無論這兩個n出現(xiàn)在什么位置,都可以轉(zhuǎn)換成為1^2^...^1000^(n^n)的形式。其次,對于任何數(shù)x,都有x^x=0,x^0=x。

所以1^2^...^n^...^n^...^1000 = 1^2^...^1000^(n^n)= 1^2^...^1000^0 = 1^2^...^1000(即序列中除了n的所有數(shù)的異或)。令,1^2^...^1000(序列中不包含n)的結(jié)果為T

則1^2^...^1000(序列中包含n)的結(jié)果就是T^n。

T^(T^n)=n。

所以,將所有的數(shù)全部異或,得到的結(jié)果與1^2^3^...^1000的結(jié)果進(jìn)行異或,得到的結(jié)果就是重復(fù)數(shù)。

當(dāng)然有人會說,1+2+...+1000的結(jié)果有高斯定律可以快速計算,但實(shí)際上1^2^...^1000的結(jié)果也是有規(guī)律的,算法比高斯定律還該簡單的多。

google面試題的變形:一個數(shù)組存放若干整數(shù),一個數(shù)出現(xiàn)奇數(shù)次,其余數(shù)均出現(xiàn)偶數(shù)次,找出這個出現(xiàn)奇數(shù)次的數(shù)?

public void fun() {  int a[] = { 22, 38,38, 22,22, 4, 4, 11, 11 };  int temp = 0;  for (int i = 0; i < a.length; i++) {    temp ^= a[i];  }  System.out.println(temp);}

解法有很多,但是好的和上面一樣,就是把所有數(shù)異或,最后結(jié)果就是要找的,原理同上??!

************************************分割線*******************************************

這樣可以實(shí)現(xiàn)不引人第三個變量實(shí)現(xiàn)交換,但是進(jìn)行的計算相對第三個變量多,所以效率會低一些。

關(guān)于其他的方法還有:int a=5,b=10; a=a+b; //a=15,b=10 b=a-b; //a=15,b=5 a=a-b; //a=10,b=5

但是這樣做有一個缺陷,假設(shè)它運(yùn)行在vc6環(huán)境中,那么int的大小是4 Bytes,所以int變量所存放的較大值是2^31-1即2147483647,如果我們令a的值為2147483000,b的值為1000000000,那么a和b相加就越界了。

事實(shí)上,從實(shí)際的運(yùn)行統(tǒng)計上看,我們發(fā)現(xiàn)要交換的兩個變量,是同號的概率很大,而且,他們之間相減,越界的情況也很少,因此我們可以把上面的加減法互換,這樣使得程序出錯的概率減少:

int a=5,b=10; a -= b; //a=-5,b=10 b += a; //b=5,a=-5a = b - a; //a=10,b=5

通過以上運(yùn)算,a和b中的值就進(jìn)行了交換。表面上看起來很簡單,但是不容易想到,尤其是在習(xí)慣引入第三變量的算法之后。 它的原理是:把a(bǔ)、b看做數(shù)軸上的點(diǎn),圍繞兩點(diǎn)間的距離來進(jìn)行計算。

具體過程:第一句“a-=b”求出ab兩點(diǎn)的距離,并且將其保存在a中;第二句“b+=a”求出a到原點(diǎn)的距離(b到原點(diǎn)的距離與ab兩點(diǎn)距離之差),并且將其保存在b中;第三句“a+=b”求出b到原點(diǎn)的距離(a到原點(diǎn)距離與ab兩點(diǎn)距離之和),并且將其保存在a中。完成交換。

感謝各位的閱讀,以上就是“Java異或是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Java異或是什么這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

標(biāo)題名稱:Java異或是什么-創(chuàng)新互聯(lián)
URL鏈接:http://aaarwkj.com/article38/pejsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站排名、小程序開發(fā)、微信小程序

廣告

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

成都app開發(fā)公司
国产成人亚洲精品专区高清| 在线播放国内自拍情侣酒店| 浮力草草日韩欧美三级| 超碰97免费在线观看| 亚洲精品有码在线观看| 深夜视频在线观看成人| 五月婷婷少妇中文字幕| 性欧美一区二区三区| 久久五月婷婷爱综合亚洲| 久久精品噜噜噜成人av农村| 久久国产精品成人免费蜜臀| 一区二区三区深夜福利| 一区二区三区免费在线观看视频| 国产原创剧情免费观看av| 免费一区二区三区黄色| 给我搜一个一级黄色片| 国产美女无遮挡免费网站| 国产精品一区在线免费看| 亚洲一区二区三区黄色| 日韩在线不卡一二三| 日本一级黄色影视大全| 国产三级三级三级三级| 日产中文乱码字幕无线观看| 99精品欧美一区二区三区视频| 人妻少妇麻豆中文字幕久久精品| 少妇人妻精品一区二区三| 熟年人妻一区二区三区| 黄色国产一区二区三区| 草草影院最新地址在线观看| 热久久这里只有精品视频| 最近更新中文字幕不卡在线| 国产精品久久久久精品日日三级 | 久久久亚洲精品中文字幕蜜桃| 国语对白精品视频在线| 亚洲高清有码在线观看| 中文字幕人妻熟女在线| 国产高清不卡av在线| 成人作爱视频免费播放| 九九九热视频这里只有精品| 国产交换精品一区二区三区| 精品欧美熟妇高潮喷水特黄|