Go 言語の 16 進数からバイナリへの変換手順: 1. 16 進数とバイナリに対応するテーブルを作成します; 2. ハッシュを 1 文字ずつ調べて 1 文字をバイナリに変換します; 3. 4 未満の場合は埋める数字 、バイナリを使用して 16 進数を表すには 4 桁が必要です; 4. それらを順番に組み合わせるだけです。
16 進数と 2 進数に対応するテーブルを作成する、ハッシュ文字列を 1 つずつ走査する、1 つずつクエリするなど、実装方法は多数あります。 、それらを組み合わせます。
ここでは別の方法を使用しました。一般的な考え方は次のとおりです:
ハッシュを文字ごとに調べ、単一の文字をバイナリに変換します。
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進数を2進数に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。