ホームページ  >  記事  >  Go言語で16進数を2進数に変換する方法

Go言語で16進数を2進数に変換する方法

DDD
DDDオリジナル
2023-06-09 09:49:351405ブラウズ

Go 言語の 16 進数からバイナリへの変換手順: 1. 16 進数とバイナリに対応するテーブルを作成します; 2. ハッシュを 1 文字ずつ調べて 1 文字をバイナリに変換します; 3. 4 未満の場合は埋める数字 、バイナリを使用して 16 進数を表すには 4 桁が必要です; 4. それらを順番に組み合わせるだけです。

Go言語で16進数を2進数に変換する方法

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。