Golang は、高い同時実行性をサポートし、軽量なプログラミング言語であり、学習が容易で、コードが明確で、開発が迅速であるため、徐々に多くの開発者に愛されています。 Golang では、さまざまな種類のデータを変換する必要があり、byte データ型と int データ型の変換は、バイナリ データやネットワーク データ パケットの処理によく使用されます。この記事では、byte データ型と int データ型の変換方法を主に次の 2 つのパートに分けて紹介します。
1. byte を int に変換する実装方法
Golang では、byte は基本的なデータ型で、0 から 255 までの 8 ビットの符号なし整数を表します。 。 int は符号付き整数型を表しますが、その範囲はコンパイラとオペレーティング システムによって異なります。 byte を int に変換する場合、byte は符号なし整数型であるため、変換後に得られる int 型も符号なし整数型であることに注意する必要があります。
方法 1: strconv ライブラリの ParseUint 関数を使用して変換する
Golang では、strconv ライブラリの ParseUint 関数を使用してバイト型を uint64 型に変換できます。以下に示すように、uint64 型は int 型に変換します。
package main import ( "fmt" "strconv" ) func main() { b := byte(100) i := int(strconv.ParseUint(fmt.Sprintf("%d", b), 10, 64)) fmt.Printf("%d\n", i) }
上記のコードでは、まずバイト型データを表す変数 b を定義し、次に fmt.Sprintf 関数を使用して文字列に変換します。型を指定し、strconv を使用します。.ParseUint 関数は、それを uint64 型に変換します。最後に、int 関数を使用して uint64 型を int 型に変換し、目的の結果を取得します。
方法 2: バイナリ ライブラリの BigEndian.Uint16 関数を使用して変換する
Golang では、バイナリ ライブラリの BigEndian.Uint16 関数を使用して、バイト型データを uint16 型に変換できます。ビッグ エンディアン整数を取得し、次に示すように int 関数を使用して int 型に変換します。
package main import ( "encoding/binary" "fmt" ) func main() { b := byte(100) i := int(binary.BigEndian.Uint16([]byte{0, b})) fmt.Printf("%d\n", i) }
上記のコードでは、binary.BigEndian.Uint16 関数を使用してバイト型データを次のように変換します。 uint16 型のビッグエンディアン整数。返されるデータ型は uint16 です。次に、それを int 型に変換すると、目的の結果が得られます。
2. int型をbyte型に変換する実装方法
Golangでは、int型をbyte型に変換する際、int型のデータがbyte型の範囲を超える場合に注意が必要です。データは切り捨てられ、予期しないエラーが発生する可能性があります。したがって、int 型データが byte の範囲内であるかどうかを判断してから変換する必要があります。
方法 1: []byte スライスを使用して次のことを実現します。
次に示すように、[]byte スライスを使用して int 型を byte 型に変換できます。上記コードでは、まず int 型データが byte 型の範囲内かどうかを判定し、範囲内であれば int 型データを []byte で初期化することで必要な結果を取得しています。
方法 2: unsafe.Pointer を使用して次のことを実現します。
Golang では、次に示すように、unsafe.Pointer を使用して int 型を byte 型に変換することもできます。上記コードでは、まず int 型のデータが byte 型の範囲内かどうかを判定し、範囲内であれば
(byte)(unsafe.Pointer(&i)) を使って i を変換しています。バイト型に変更すると、目的の結果が得られます。
結論この記事の導入部を通じて、Golang における byte データ型と int データ型の変換実装方法について学びました。バイナリ データを処理する場合でも、ネットワーク データ パケットを処理する場合でも、日常のプログラミング作業において、この知識ポイントは非常に役立ちます。この記事が何らかの助けとなり、開発に Golang をより効果的に使用できるようになることを願っています。
以上がgolangでbyteをintに変換する方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。