十進位制轉二進位制為什麼不是除以2?

時間 2021-05-30 06:31:33

1樓:火皇煌

對於10進製數,從左到右每位的數字代表的單位是:10的0次方、10的一次方、10的二次方、10的三次方。。。

對於2進製,從左到右每位的數字代表的單位是:2的0次方、2的一次方、2的二次方、2的三次方。。。

所以對於乙個十進位制數比如150而言,轉換成二進位制數X:

如果先計算最高位,則就是先用150除以128即2的7次方,商為1,餘數為22,這22就是二進位制X除了最高位剩下位的值(即***除去最高位1剩下的0010110的值),如此迴圈。

如果先計算X的最低位,那就是先除以2,如此迴圈。

2樓:

學彙編時,有個概念加減法的效率比乘除法高。

這本書作者可能是習慣從這方面考慮的了。

也可以視作

每次與乙個 2乘方數按位與後檢查是否大於0:

a & 0b1000000(128)

a & 0b0100000(64)

.......

話說,作者也可能是考慮到有些人的乘除法學的不好?

3樓:yyehl

兩種方法的本質是一樣的。

還有一種方法,就是十進位制先轉十六進製制再轉二進位制。這個方法也是十進位制數不斷除以16取餘,算出十六進製制,十六進製制與二進位制關係十分明顯,直接可以寫出來。優點就是可以不用像第二種方法那樣除那麼多次。。。

4樓:Nemo

原理都是一樣的啊,只不過這本書上是從高位開始計算,除2求餘是從低位開始計算,書上的這種辦法一般用起來就是:

轉化了之後就是10010110

5樓:RednaxelaFX

《Code》一書顯然是從左向右計算的,最先算出的是最高位的結果。而常規的進製轉換演算法是從右向左計算的,最先算出的是最低位的結果。它們內含的運算當然都是等價的咯。

怎麼理解十進位制轉二進位制輾轉相除演算法?

225 1 2 1 2 1 2 0 2 0 2 0 2 0 2 1 2對吧。225 2的餘數不就是2前面的1嗎?112 2的餘數不就是2前面的0嗎?56 2的餘數不就是2前面的0嗎?28 2的餘數不就是2前面的0嗎?14 2的餘數不就是2前面的0嗎?7 2的餘數不就是2前面的1嗎?3 2的餘數不就是...

二進位制 八進位制 十進位制 十六進製制 怎麼學會?是怎麼算的方式?

訬禕 這個是前段時間發現的很有意思的進製轉換 看整數部分運算,本來十進位制轉二進位制整數轉換規則 除以基數二 取餘,最後商為0 但我發現這個解題過程,商數為1,結束轉換這種類似的錯誤普遍存在,但好在通過反向求和可以驗算轉換是否存在錯誤,我個人覺得驗算還是可以讓自己少一些錯誤。 我也是現在才真正想清楚...

為什麼十進位制可以表示所有小數,二進位制三進製不能?

這個問題是錯的。無論是十進位制還是二進位制三進製,都沒法表示所有小數 題主指的應該是有理小數 其實,二進位制 三進製的階數太小,迴圈節變得比較長而已,有限的位數不容易表示出來而已。 Wolfie Wang 先問是不是,再問為什麼。如果只談有限小數,那麼十進位制和其他進製都有不能精確表示的數。如果把無...