對於一個菜鳥來說學會二進制轉化是很有必要的,至少在做題這方面是這樣
感覺大家都有自己的二進制轉化的方法,
我問過一部分人,他們的方式一般都是
用短除 " |___" 取餘的方式進行轉化
但是對於我這種懶漢的話,不想算除法所以我有自己的學習轉化方法,希望對大家能有幫助
一共是兩個辦法
第一個:一眼法!
是不是感覺名字就很厲害,沒錯這個方法也確實很厲害,什麼是一眼法呢?就是我一眼就知道答案
當然這隻針對一些特殊的數字,
比如說
十進制----二進制
1----1
2----10
3----11
4----100
。。。
32----100000
。。。
等等啊,這些數字都有一些和明顯的特徵,那就是都是等於2的指數冪和2的指數冪+-1 的數字,
一般用一眼法就能解決了,那麼一些比較難的數字呢,就要用到第二種方法了
第二種方法:拆分法
對於這種方法,有一個最基本的要求,就是對於2的指數冪有一個熟悉的瞭解
他們分別是:0 2 4 8 16 32 64 128 256 512 1024
一般到1024後邊的就用不到了也就是到2的十次冪
然後看是了重中之重的部分
隨便拿一個數字,比如說176
向下找到176最接近的2的指數冪:128
然後將176和128做差=48
然後向下找和48最接近的2的指數冪:32
然後將48和32做差=16
然後向下找和16最接近的2的指數冪:16
然後將16和16做差=0
這個時候就算完了~
在176中包含一個128一個32 一個16
既176=128+32+16
然後對於一個新手來說可以在紙上按倒序的順序把2的指數冪寫出(寫需要用到的最大的)
128 64 32 16 8 4 2 0
然後將176中包含的數字下方寫1,沒有的地方寫0
然後這個數字就出來了:10110000
對於一個老手來說,直接採用“一眼法”將結果寫出:10110000
這是正數的二進制轉化
對於負數就要有不同的方法了,採用“乘二進一法”
舉一個例子:以-0.625爲例
第一步將這個數乘以2
-0.625*2=-1.25
這是時候整數位爲1所以在轉化的時候,在小數點後第一位寫1
第二步將“取一”之後的數字既-0.25再乘以2=-0.5
這是時候整數位爲0所以在轉化的時候,在小數點後第二位寫0
第三部將-0.5再乘以2=-1
這個時候整數位爲1所以在轉化的時候,在小數點後第三位寫1
此時會發現,已經沒有小數位了,所以,這個數也就被轉化完了,輸出結果爲:-0.101
同理再舉一個例子,以0.4爲例
第一步 (0.4)乘以2 =0.8 小數點後第一位寫0
第二步 (0.8)乘以2=1.6 小數點後第二位寫1(取1的過程)
第三步 (0.6)乘以2=1.2 小數點後第三位寫1 (繼續執行取一)
第四步 (0.2)乘以2=0.4 小數點後第四位寫0
此時發現,值又成爲了0.4 那麼後邊就是一個重複的“0110”,
所以我們輸出0.4轉化爲二進制數的結果爲:0.0110
關於二進制數的轉化,就是這些,如果有錯誤的地方。歡迎大家斧正
如果有不懂的地方,歡迎大家留言。