分析
首先來理解一下十進(jìn)制的加法
8884 + 146 = 9030
依據(jù) 不進(jìn)位+進(jìn)位這一思想進(jìn)行詳述
首先是不進(jìn)位的結(jié)果是8920
哪幾位需要進(jìn)位呢? 0011 也就是個(gè)位和十位需要進(jìn)位,個(gè)位、十位進(jìn)位之后的值為110,而這個(gè)結(jié)果是需要加到上面的不進(jìn)位的值,即8920+110 = 8030 同樣這是沒有進(jìn)位的,但是在這次相加的過程中也有進(jìn)位的考量,哪幾位呢?即100,百位的位置需要進(jìn)位,那就再左移即可,為1000,然后加上上面的不進(jìn)位相加的和,最后結(jié)果是9030,最后再看一下,還需不需要進(jìn)位呢?發(fā)現(xiàn)8030&1000=0(按著二進(jìn)制的形式寫的,便于理解),此時(shí)是沒有再需要進(jìn)位的了,即最后結(jié)果就是9030了。
下面推廣到二進(jìn)制,是同樣的思路的。
來看一下13+7這兩個(gè)數(shù)的求和過程
13的二進(jìn)制表示為:1101
7的二進(jìn)制表示為: 0111
先求不進(jìn)位的兩個(gè)數(shù)之和,1101^0111 = 1010 ,而哪幾位需要進(jìn)位呢?
可以用&運(yùn)算符來確定,即1101 & 0111 = 0101,將此結(jié)果左移即是進(jìn)位之后需要加在1010上面的值,這就有變成剛開始的狀態(tài)了,兩個(gè)數(shù)相加,先算不進(jìn)位狀態(tài)的和,然后再看哪幾位需要進(jìn)位,上面兩種狀態(tài)的值為 0000(不進(jìn)位的結(jié)果) 1010(需要進(jìn)位,待計(jì)算),后面的值再左移表示進(jìn)位之后的結(jié)果為10100,
此時(shí)新的兩個(gè)數(shù)是0000,10100,
public class Solution{ /** * @param a: An integer * @param b: An integer * @return: The sum of a and b */ public int aplusb(int a, int b) { if (b==0) return a; return aplusb(a^b, (a&b)<<1); } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/72446.html
摘要:題目根據(jù)逆波蘭表示法,求表達(dá)式的值。給定逆波蘭表達(dá)式總是有效的。逆波蘭表達(dá)式又叫做后綴表達(dá)式。解題思路可以看出逆波蘭表達(dá)式中的每一個(gè)運(yùn)算符屬于該運(yùn)算符前的兩個(gè)數(shù)字間的運(yùn)算。如如波蘭表達(dá)式則加號(hào)前兩個(gè)數(shù)字為。 題目: 根據(jù)逆波蘭表示法,求表達(dá)式的值。 有效的運(yùn)算符包括 +, -, *, / 。每個(gè)運(yùn)算對(duì)象可以是整數(shù),也可以是另一個(gè)逆波蘭表達(dá)式。 Evaluate the value of...
摘要:一抽象數(shù)據(jù)類型,縮寫為是計(jì)算機(jī)領(lǐng)域一種很基礎(chǔ)的方法,基本的思想就是數(shù)據(jù)抽象。二抽象數(shù)據(jù)類型的概念和描述抽象數(shù)據(jù)類型把數(shù)據(jù)定義為抽象的對(duì)象集合,只為他們定義可用的操作,而不用暴露具體的實(shí)現(xiàn)細(xì)節(jié)。 文章首發(fā)于公眾號(hào)一件風(fēng)衣(ID:yijianfengyi) 名人名言強(qiáng)調(diào)基礎(chǔ)的重要性的句子不勝枚舉,數(shù)據(jù)結(jié)構(gòu)與算法作為計(jì)算機(jī)專業(yè)的必學(xué)科目,其重要性不言而喻。 在以往的教學(xué)體系中,數(shù)據(jù)結(jié)構(gòu)與算法...
摘要:基本數(shù)據(jù)類型布爾類型或,占用位。強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換的語法格式是,強(qiáng)制類型轉(zhuǎn)換的運(yùn)算符是圓括號(hào)。無符號(hào)右移運(yùn)算符。對(duì)于低于類型如和的操作數(shù)總是先自動(dòng)類型轉(zhuǎn)換為類型后再移位。 注釋 單行注釋//......多行注釋/ .../文檔注釋/*.../ 文檔注釋位于注釋內(nèi)容上一行 標(biāo)識(shí)符和關(guān)鍵字 分隔符 分號(hào):作為語句的分隔,每個(gè)Java語句必須使用分號(hào)作為結(jié)尾。花括號(hào):定義一個(gè)代碼...
摘要:本題要求編寫程序,計(jì)算個(gè)有理數(shù)的和差積商。輸出格式分別在行中按照有理數(shù)運(yùn)算符有理數(shù)結(jié)果的格式順序輸出個(gè)有理數(shù)的和差積商。注意輸出的每個(gè)有理數(shù)必須是該有理數(shù)的最簡(jiǎn)形式,其中是整數(shù)部分,是最簡(jiǎn)分?jǐn)?shù)部分若為負(fù)數(shù),則須加括號(hào)若除法分母為,則輸出。 本題要求編寫程序,計(jì)算 2 個(gè)有理數(shù)的和、差、積、商。 輸入格式:輸入在一行中按照 a1/b1 a2/b2 的格式給出兩個(gè)分?jǐn)?shù)形式的有理數(shù),其中分...
摘要:而所有的數(shù)據(jù)運(yùn)算都是采用補(bǔ)碼進(jìn)行的。補(bǔ)碼解決負(fù)數(shù)加法運(yùn)算正負(fù)零問題,彌補(bǔ)了反碼的不足。通過使用訪問修飾符可以使實(shí)例變量對(duì)子類可見暫時(shí)在學(xué)習(xí)基礎(chǔ)語法知識(shí)的時(shí)候可以暫時(shí)忽略實(shí)例變量這部分內(nèi)容,這部分內(nèi)容主要被使用在面向?qū)ο蟮牟糠郑菢O其重要。 showImg(https://segmentfault.com/img/remote/1460000019264541?w=600&h=242)...
閱讀 2664·2021-11-24 09:38
閱讀 1979·2019-08-30 15:53
閱讀 1234·2019-08-30 15:44
閱讀 3229·2019-08-30 14:10
閱讀 3579·2019-08-29 16:29
閱讀 1800·2019-08-29 16:23
閱讀 1099·2019-08-29 16:20
閱讀 1472·2019-08-29 11:13