ホームページ  >  記事  >  バックエンド開発  >  golangでbyteをintに変換する方法について話しましょう

golangでbyteをintに変換する方法について話しましょう

PHPz
PHPzオリジナル
2023-03-29 09:24:143899ブラウズ

Golang は、高い同時実行性をサポートし、軽量なプログラミング言語であり、学習が容易で、コードが明確で、開発が迅速であるため、徐々に多くの開発者に愛されています。 Golang では、さまざまな種類のデータを変換する必要があり、byte データ型と int データ型の変換は、バイナリ データやネットワーク データ パケットの処理によく使用されます。この記事では、byte データ型と int データ型の変換方法を主に次の 2 つのパートに分けて紹介します。

  1. byte から int への変換の実装方法
  2. # byte から int への変換の実装方法int to byte

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

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