Golang のバイト型は、8 ビットのバイナリ データを格納するために使用される非常に重要なデータ型です。多くの場合、データ処理や操作をより便利に実行できるように、バイト型を変換する必要があります。この記事ではバイト変換を行う方法を紹介します。
Golang では、string() 関数を使用してバイト型を文字列に変換できます。例は次のとおりです。
package main import "fmt" func main() { b := []byte{'h','e','l','l','o'} s := string(b) fmt.Println(s) // 输出为 "hello" }
[]byte() 関数を使用して文字列をバイト型に変換することもできます。例は次のとおりです。
package main import "fmt" func main() { s := "hello" b := []byte(s) fmt.Println(b) // 输出为 [104 101 108 108 111] }
int() 関数を使用して、バイト型を整数型に変換できます。例は次のとおりです:
package main import "fmt" func main() { b := byte(255) i := int(b) fmt.Println(i) // 输出为 255 }
バイト型の値の範囲は 0 ~ 255 であり、この範囲外の値は実行時例外を生成します。
byte() 関数を使用して、整数型をバイト型に変換できます。例は次のとおりです。
package main import "fmt" func main() { i := 255 b := byte(i) fmt.Println(b) // 输出为 255 }
整数型の値がバイト型の値の範囲を超える場合、下位 8 ビットのみが取得されることに注意してください。
Golang では、バイト配列の 2 つの連続する要素を結合して uint16 型に変換できます。例は次のとおりです。
package main import "fmt" func main() { b := []byte{0x12, 0x34} u := uint16(b[0])<<8 + uint16(b[1]) fmt.Println(u) // 输出为 4660 }
変換プロセス中はバイト順序 (ビッグ エンディアンまたはリトル エンディアン) に注意する必要があることに注意してください。
[]byte 型を使用して uint16 型をバイト配列に変換することもできます。例は次のとおりです。
package main import "fmt" func main() { u := uint16(4660) var b = make([]byte, 2) b[0] = byte(u >> 8) b[1] = byte(u) fmt.Println(b) // 输出为 [18 52] }
変換プロセスではバイト順序の問題にも注意する必要があることに注意してください。
概要
この記事では、バイト型を変換する方法を紹介し、バイトと文字列、バイトと整数、バイト配列と uint16 の間の変換を扱います。実際の開発ではバイト型の変換が頻繁に発生しますが、上記の変換方法をマスターするとデータの加工や計算がより便利になります。
以上がgolangのバイト変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。