前一篇我們介紹了模2運算的加減乘除運算 ,雖然,我們瞭解了模二運算的基本法則,但是,如果每次都要計算,那就未免覺得太繁瑣,所以,這裏我總結了一套自己的運算心得供大家學習。接下來,我們就要講解一下如何基礎算法中快速實現進制的轉換。
舉個栗子:
我們求以前求一個10進制的數轉換成2進制的過程大致如此,用這個十進制數“除2取餘,逆序排列"法。具體做法是:用2整除十進制整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數,如此進行,直到商爲小於1時爲止,然後把先得到的餘數作爲二進制數的低位有效位,後得到的餘數作爲二進制數的高位有效位,依次排列起來。如下圖所示:
你會發現,這種方法會有明顯的缺陷,那就是如果這個10進制的數非常大,那麼這樣一直“除二取餘”可能非常的浪費時間,甚至是浪費紙張。那莫有沒有更好的方法實現了,答案肯定是有的,下面就介紹一下我的快速計算使用心得。
快速計算心得
首先我們需要背誦2的2到10的冪次方,這個我相信對大家都不難,它們分別是1、 2、4、8、16、32、64、128、 256、 512 、1024。而這些數對應的二進制分別1、10、 100 、1000 、10000 、100000、 1000000 、10000000、 100000000 、1000000000.
- 10進制轉2進制
接下來,就是開始心算的時候,比如:
9=8+1 那麼對應的二進制就是:1001
13=8+4+1 那麼對應的二進制就是:1101
17=16+1 那麼對應的二進制就是:10001
34=32+2 那麼對應的二進制就是:100010
245=128+64+32+16+4+1 那麼對應的二進制就是:11110101
每次從高位依次往下寫,比如34 從32 往下寫 依次是 16 、8 、4 、2 、1 在該位數上分解的數有該數就寫1,沒有就寫0。
- 2進制轉10進制
同理,也是從高位開始計算,先數二進制數比如:
101010 共有6個數,那麼就從2的(6-1)次方開始計算 分別是32,8,2 結果就是:32+8+2=42
100010 共有6個數,那麼就從2的(6-1)次方開始計算 分別是32,2 結果就是:32+2=34
.........
好了,這個方法是不是很簡單,如果覺得對你有幫助,不妨給一個小紅星吧!
如果,你還是不瞭解,建議先看一下我的上一篇博客:模2運算的加減乘除運算