1樓:SuperRun
0.75 = 1/2 + 1/4 + 0/8 + 0/16 + ... ;
你左右都乘2 , 變成了1.5 = 1 + 1/2 + 0/4 + 0/8 + ...;
會發現二分位(即二進位制小數第一位)變成了整數, 四分位變成了二分位, 也就是整體往前進了一位.
而這個進到整數字的"1"就是之前的二分位. 再乘2, 最一開始的四分位就會從二分位進到整數字.
二分位的含義可以參考"十分位", "百分位", "千分位"
2樓:魔某人
0.353表示乙個數里有3個(1/10),5個(1/100),3個(1/1000)。
0.11001表示乙個數里有1個(1/2),1個(1/4),1個(1/32)。
0.353裡有多少個(1/2)?
floor(0.353/0.5)=0個。
0.353裡有多少個(1/4)?
floor(0.353/0.25)=1個。
0.353除了剛才那1個(1/4),還有多少(1/8)?
floor((0.353-0.25)/0.125)=0個。
0.353除了剛才那1個(1/4),還有多少(1/16)?
floor((0.353-0.25)/0.0625)=1個。
於是0.353=0.0101...
乘2取整法的原理就是這樣,只是他換了一種說法:
floor(0.353/0.5) = floor(0.353*2)
floor(0.353/0.25) = floor(0.353*2*2)
floor((0.353-0.25)/0.125)
= floor((0.353*2*2-0.25*2*2)/(0.125*2*2))
= floor((0.353*2*2-1)/0.5)
= floor((0.353*2*2-1)*2)
為什麼十進位制可以表示所有小數,二進位制三進製不能?
這個問題是錯的。無論是十進位制還是二進位制三進製,都沒法表示所有小數 題主指的應該是有理小數 其實,二進位制 三進製的階數太小,迴圈節變得比較長而已,有限的位數不容易表示出來而已。 Wolfie Wang 先問是不是,再問為什麼。如果只談有限小數,那麼十進位制和其他進製都有不能精確表示的數。如果把無...
怎麼理解十進位制轉二進位制輾轉相除演算法?
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,結束轉換這種類似的錯誤普遍存在,但好在通過反向求和可以驗算轉換是否存在錯誤,我個人覺得驗算還是可以讓自己少一些錯誤。 我也是現在才真正想清楚...