整数をバイト配列に効率的に変換する
データ ストリームまたはネットワーク プロトコルを使用する場合、変換が必要な状況が発生することがあります。整数をバイト配列に変換します。指定されたコードは a.Write() 関数を使用してこれを実行しようとしていますが、より効率的で適切な方法が利用可能です。
エンコーディング/バイナリ ライブラリの使用
Go 標準ライブラリは、バイナリ データのエンコードとデコードに特化したソリューションを提供するエンコード/バイナリ パッケージを提供します。整数変換の場合、LittleEndian.PutInt32 や BigEndian.PutUint64 などの関数を使用して、バイト配列なしで整数をエンコードできます。
LittleEndian.PutInt32 を使用した例を次に示します。
import "encoding/binary" func main() { bs := make([]byte, 4) binary.LittleEndian.PutInt32(bs, 31415926) fmt.Println(bs) }
ASCII のエンコードString
整数の ASCII 表現が必要な場合は、strconv.Itoa を使用して文字列に変換し、それをバイト配列にキャストできます。
次の例は、 strconv.Itoa:
import "strconv" func main() { bs := []byte(strconv.Itoa(31415926)) fmt.Println(bs) }
最適なものの選択メソッド
メソッドの選択は、特定の要件によって異なります。バイナリ表現が必要な場合は、encoding/binary が最適化された機能を提供します。 ASCII 表現の場合、文字列変換は簡単なアプローチです。
以上がGo で整数をバイト配列に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。