golangベースの変換

王林
リリース: 2023-05-16 13:13:08
オリジナル
1163 人が閲覧しました

golang は非常に優れたプログラミング言語であり、その強力な機能と簡潔な構文により、ますます多くの開発者に選ばれています。 golang では、基底変換は非常に基本的でよく使用される操作です。golang の基底変換について学びましょう。

golang では、一般的に使用される基数には、2 進数、8 進数、10 進数、16 進数が含まれます。これらの異なるベース間で変換する方法を見てみましょう。

1. 10 進数を他の基数に変換する

golang では、fmt パッケージの FormatInt 関数を使用して、10 進数を指定した基数の文字列に変換できます。この関数のプロトタイプは次のとおりです。

func FormatInt(i int64, base int) string
ログイン後にコピー

このうち、i は変換する必要がある 10 進数を表し、base はターゲットの基数で、2、8、10、または 16 のいずれかになります。たとえば、10 進数の 18 を 2 進数に変換するには、コードは次のとおりです。

package main

import (
    "fmt"
    "strconv"
)

func main() {
    n := int64(18)
    b := strconv.FormatInt(n, 2)
    fmt.Printf("2进制:%s
", b)
}
ログイン後にコピー

実行結果は次のとおりです。

2进制:10010
ログイン後にコピー

上記のコードでは、strconv の FormatInt 関数を使用して変換します。 10 進数の 18 を 2 進数に変換します。 文字列をコピーして印刷します。

同様に、基数パラメータを変更することで、10 進数を他の基数に変換できます。たとえば、10 進数の 18 を 8 進数または 16 進数に変換するには、コードは次のとおりです:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    n := int64(18)
    o := strconv.FormatInt(n, 8)
    h := strconv.FormatInt(n, 16)
    fmt.Printf("8进制:%s
", o)
    fmt.Printf("16进制:%s
", h)
}
ログイン後にコピー

実行結果は次のとおりです:

8进制:22
16进制:12
ログイン後にコピー

2. 他の 10 進数を 10 進数に変換します

in golang では、strconv パッケージの ParseInt 関数を使用して、文字列で表される数値を 10 進数に変換できます。この関数のプロトタイプは次のとおりです。

func ParseInt(s string, base int, bitSize int) (i int64, err error)
ログイン後にコピー

このうち、s は変換対象の文字列を表し、base は s の基数 (0、2、8、10、または 16) を表し、bitSize はそれぞれを表します。結果の桁数は 0、8、16、32、または 64 です。たとえば、2 進数 10010 を 10 進数に変換するコードは次のとおりです。

package main

import (
    "fmt"
    "strconv"
)

func main() {
    b := "10010"
    n, _ := strconv.ParseInt(b, 2, 64)
    fmt.Printf("10进制:%d
", n)
}
ログイン後にコピー

実行結果は次のとおりです。

10进制:18
ログイン後にコピー

上記のコードでは、strconv の ParseInt 関数を使用して変換します。バイナリ文字列を 10 進数に変換して出力します。

同様に、base パラメータを変更することで、他の基数の文字列を 10 進数に変換できます。たとえば、8 進数の文字列「22」または 16 進数の文字列「12」を 10 進数に変換するには、コードは次のとおりです。

package main

import (
    "fmt"
    "strconv"
)

func main() {
    o := "22"
    h := "12"
    on, _ := strconv.ParseInt(o, 8, 64)
    hn, _ := strconv.ParseInt(h, 16, 64)
    fmt.Printf("8进制:%d
", on)
    fmt.Printf("16进制:%d
", hn)
}
ログイン後にコピー

実行結果は次のとおりです。上記のコードを通して見てください。 golang で 16 進数の変換を行うのは非常に便利です。 golang 開発作業には、塩基変換の習熟が不可欠です。

以上がgolangベースの変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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