go語言16進位轉二進位的步驟:1、創建一個16進位與二進位對應的表;2、逐字遍歷hash,將單一字元轉換為二進位;3、不滿4位則填入,用2進位表示16進位需要用4位;4、依序組合即可。
實作方法很多,例如建立一個16進位與二進位對應的表,對hash字串逐一遍歷查詢然後組合即可。
我這裡使用了另一種方法,大致思路如下:
逐字元遍歷hash,將單一字元轉換為二進位;
不滿4位元則填入;(2^4 = 16,用2進位表示16進位需要用4位元)
依序組合;
程式碼範例:
package util import( "strings" "strconv" ) func hash2bin(hash string)(string,int,error){ binary_string := "" for _, char := range hash{ char_hex,err:= strconv.ParseInt(string(char),16,8) if err!=nil{ return "",0,err } char_bin := "" for ; char_hex > 0; char_hex /=2{ b := char_hex % 2 char_bin = strconv.Itoa(int(b))+char_bin } fill := 4-len(char_bin) for fill>0{ char_bin = "0" + char_bin fill -= 1 } binary_string += char_bin } return binary_string,len(binary_string),nil }
以上是go語言如何將16進制轉二進位的詳細內容。更多資訊請關注PHP中文網其他相關文章!