日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

异或

發(fā)布時(shí)間:2023/12/19 42 生活家
生活随笔 收集整理的這篇文章主要介紹了 异或 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  在平常的編程中,很少用到算法(反正我是這樣,只顧著實(shí)現(xiàn)業(yè)務(wù)需求了),所以,我的代碼總的來(lái)說(shuō)是毫無(wú)價(jià)值的。怎么才能讓自己代碼變得有點(diǎn)意思呢,今天給大家介紹個(gè)運(yùn)算符"^",異或運(yùn)算符。有的時(shí)候用點(diǎn)運(yùn)算符的小技巧,可以讓自己的代碼“蓬蓽生輝”喔!:-D

  首先,我先介紹一下,什么是異或運(yùn)算符。簡(jiǎn)單點(diǎn)來(lái)說(shuō),異或就是相同為0,不同為1,它是32位二進(jìn)制數(shù)使用的運(yùn)算符,我們?cè)趯?shí)際使用中,計(jì)算的時(shí)候都是要轉(zhuǎn)換成二進(jìn)制的。下面,我用一個(gè)圖來(lái)介紹什么是異或,大家一看就明白了。

  相信大家現(xiàn)在可以明白異或了吧!

  下面我用一個(gè)簡(jiǎn)單的實(shí)例,通過(guò)比較,更清楚深入的了解異或。

  題目:請(qǐng)把兩個(gè)整數(shù)進(jìn)行交換。

  在我們初次學(xué)習(xí)Java的時(shí)候,進(jìn)行兩個(gè)數(shù)之間的交換,首先會(huì)想到使用臨時(shí)變量,于是,方案一就是采用第三方變量實(shí)現(xiàn)交換。

1         int a = 10;
2         int b = 20;
3         
4         int temp = a;
5         a = b;
6         b = temp; 

  采用第三方變量實(shí)現(xiàn)是最簡(jiǎn)單也是最容易理解的,但是能不能不使用第三方變量呢?方案二就是通過(guò)數(shù)學(xué)上基本運(yùn)算,實(shí)現(xiàn)了交換。

1         int a = 10;
2         int b = 20;
3                 
4         a = a + b; //a=30
5         b = a - b; //b=10
6         a = a - b; //a=20

  這個(gè)方法是不是很巧妙呢?但是!它是有缺點(diǎn)的,那就是如果a+b的值超出了int的范圍,就會(huì)有數(shù)據(jù)溢出,所以,有沒(méi)有更好的方法呢?當(dāng)然有,異或運(yùn)算符!下面方案三就是介紹異或運(yùn)算符的巧妙使用。

1         int a = 10;
2         int b = 20;
3         
4         a = a ^ b;
5         b = a ^ b; //b = a ^ b ^ b = a
6         a = a ^ b; //a = a ^ b ^ a = b

  第三個(gè)方法是不是很贊呢!當(dāng)然,展示給大家的只是很簡(jiǎn)單的例子,在實(shí)際應(yīng)用中,還是需要仔細(xì)加慎重的去選擇的。謝謝。

總結(jié)

以上是生活随笔為你收集整理的异或的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。