ホームページ > バックエンド開発 > Golang > Golang 関数のバイナリおよび 16 進データ処理のヒント

Golang 関数のバイナリおよび 16 進データ処理のヒント

PHPz
リリース: 2023-05-17 08:51:25
オリジナル
2277 人が閲覧しました

まず、Golang 関数のバイナリおよび 16 進データの処理スキルをよりよく理解するために、バイナリと 16 進数の基本的な知識を明確にする必要があります。

バイナリ システムは、基数 2 システムとも呼ばれ、コンピュータ システム内で最も一般的に使用される数値表現方法です。 2 進数では、各ビットに取り得る値は 0 と 1 の 2 つだけです。たとえば、1011 は 2 進数です。コンピュータでは、プログラム、データ、画像など、あらゆる情報をバイナリ表現に変換できます。

16 進法は 16 進法で、長い数値を 2 進数で表現するのは面倒であるため、コンピューターでの 2 進数の表現を簡素化するために使用されます。 16進数では16種類の文字があるため、0~9、A~Fの16文字で数字を表すことができ、例えば「1A3」は16進数です。

Golang では、バイナリおよび 16 進数のデータ処理技術には主に次の側面が含まれます。

  1. バイナリ文字列と 10 進数の変換

プログラムでは、多くの場合、バイナリ文字列を 10 進数に変換したり、10 進数をバイナリ文字列に変換したりする必要があります。現時点では、Golang の組み込み strconv パッケージを使用してこれを実現できます。

まず、文字列で表される 2 進数を 10 進数に変換する場合は、strconv パッケージの ParseInt() 関数を使用できます。例は次のとおりです:

binStr := "101101"
dec, err := strconv.ParseInt(binStr, 2, 64)
if err != nil {
    // 错误处理
}
fmt.Println(dec) // 输出45
ログイン後にコピー

このうち、最初のパラメータは解析対象のバイナリ文字列、2 番目のパラメータは基数 (ここでは 2)、最後のパラメータは変換後の int64 型の桁数です。

同様に、10 進数をバイナリ文字列に変換したい場合は、strconv パッケージの FormatInt() 関数を使用できます。例は次のとおりです。最初のパラメータはフォーマットされた 10 進数、2 番目のパラメータは基数、ここでは 2 です。

2 進数と 16 進数の変換
  1. 2 進数と 16 進数を相互に変換するには、strconv パッケージの関数を使用することもできます。基数パラメータを対応する基数に変更します。

たとえば、16 進数をバイナリ文字列に変換したい場合は、strconv パッケージの FormatInt() 関数を使用できます。例は次のとおりです。 、最初のパラメータは解析する 16 進文字列で、2 番目のパラメータは基数で、ここでは 16 です。同様に、バイナリ文字列を 16 進文字列に変換する場合は、対応する基数パラメータを 2 と 16 に変更するだけです。

ビット演算

    バイナリ データを処理する場合、ビット演算は多くの場合重要な部分です。 Golang では、ビット演算用の演算子と関数も多数提供しています。
  1. たとえば、2 進数の n 番目のビットを 1 に設定する場合は、左シフト演算子「<<」とビットごとの OR 演算子「|」を使用できます。例は次のとおりです。
dec := 45
binStr := strconv.FormatInt(int64(dec), 2)
fmt.Println(binStr) // 输出"101101"
ログイン後にコピー

このうち、「|=」はビット単位のOR演算子の略称で、左右の数値をビット単位でOR演算し、その値を変数に代入する機能です。左。

概要

上記は、バイナリ データと 16 進データを処理するための一般的な Golang テクニックのいくつかであり、バイナリ データをより快適に処理するのに役立ちます。もちろん、これらは入門レベルのテクニックにすぎません。2 進数の演奏方法をさらに詳しく知りたい場合は、関連する資料を読んで練習することをお勧めします。

以上がGolang 関数のバイナリおよび 16 進データ処理のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート