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