go文字列と16進[]byteの変換

1362 ワード

最近の仕事の中で出会った问题、実现する机能はテーマの言うように、私は文字列を16進数の[]byteに変换して、ネット上で多くの文章を探して、多くのテーマはすべて“[]byteと16進数(String)の相互転换”のこのような类似のテーマで、试験を受けてからも问题を解决しましたが、これもとても大きい误导性をあげて、自身の16進数の文字列は问题で、文字列を入力すると16進数の文字列が入力されますか?そして私が欲しいのは[]byteが16進数で、なぜこのようにタイトルをつけたのか分かりませんが、よし、直接私たちのテーマに入りましょう.
func main() {
    //   byte 
    byte_data := []byte(` `)
    //   byte   16 
    hex_string_data := hex.EncodeToString(byte_data)
    // byte   16   
    println(hex_string_data)

    /* ======   ====== */

    //   16    byte
    hex_data, _ := hex.DecodeString(hex_string_data)
    //   byte      
    println(string(hex_data))
}

コードを見ると、なぜこんなに多くの文章が[]byteと16進法(String)の相互変換を書くのかがわかります.まず、文字列を16進数の文字列に置き換え、16進数の文字列を16進数の[]byteに変換します.
もちろん文字列回転16進[]byteと書いてありますが、整数回転16進[]byteも同じ理屈ですが、唯一注意しなければならないのは変換するときに大小の端があることです
しかし、他人のブログを見ていると、16進数の文字列を手動でバイト配列に変換する人もいます.参考にしてみましょう.
func Hextob(str string)([]byte){ 
	slen:=len(str) 
	bHex:=make([]byte,len(str)/2)
	ii:=0
	for i:=0;i

メソッドロジックは簡単ですが、2つの文字列ごとにbyteに変換することにほかならないが、前提として16進数の文字列があるので、この方法は下位実装の例を学ぶのに役立つでしょう.
 
参照先:
https://www.jianshu.com/p/ecda78de1aa0
https://zhuanlan.zhihu.com/p/26808455