想要把一個十進制的數字轉化為二進制,應該要把數字的整數部分和小數部分分別化成二進制數,再把兩個部分的二進制數合并起來,即可成功得到一個完整的二進制數。首先要通過短除法,讓十進制數不斷被2整除,可以得到多個余數,最后將得到的余數從下到上排列組合,即可得到轉化的二進制數。然后把小數部分不斷的對2連乘,取每一步的整數部分,再將所有的整數從上到下排列得到小數部分的二進制數。下面以十進制數101.8125為例,演示一下具體的轉化過程。
站在用戶的角度思考問題,與客戶深入溝通,找到吉陽網站設計與吉陽網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都網站制作、做網站、企業官網、英文網站、手機端網站、網站推廣、國際域名空間、虛擬空間、企業郵箱。業務覆蓋吉陽地區。
//二進制轉十六進制
func?btox(b?string)?string?{
base,?_?:=?strconv.ParseInt(b,?2,?10)
return?strconv.FormatInt(base,?16)
}
//十六進制轉二進制
func?xtob(x?string)?string?{
base,?_?:=?strconv.ParseInt(x,?16,?10)
return?strconv.FormatInt(base,?2)
}
第一種方法:短除法
例如:將123 轉化為二進制
短除法轉二進制要求對2倒取余,因此轉化為結果為:111011
第二種方法:冪方和
十進制數按照冪方和轉化十進制過程如下:
123 = 1*10^2 + 2*10^1 + 3*10^0
= 100 + 20 + 3
= 123
二進制與十進制類似,轉化十進制過程如下:
1001110 = 1*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 0*2^0
? = 64 + 0 + 0 + 8 + 4 + 2 + 0
? = 78
將上述二進制倒過來就是十進制轉二進制的方法了!
78 = 64 + 14
= 64 + 8 + 6
= 64 + 8 + 4 + 2
= 2^6 + 2^3 + 2^2 + 2^1
= 1001110
將78每次都拆出最接近的2的次方項,直到完全拆完為止,出現的次方項寫為1,沒有出現的寫為0,即為十進制轉二進制的過程,此方法需要注意掌握2的次方項以及快速心算的能力。