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中文网其他相关文章!