いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Goメモ-193 (strconvパッケージ Tips)(16進数文字列から10進数へ変換)

概要

以下自分用のメモです。よく忘れるのでここにメモメモ。。。

サンプル

package strconvs

import (
    "strconv"

    "github.com/devlights/gomy/output"
)

// HexToDec -- 16進数文字列を10進数に変換するサンプルです.
func HexToDec() error {
    var (
        values = []string{
            "ff",
            "deadbeef",
        }
    )

    for _, v := range values {
        var (
            parsed int64
            err    error
        )

        // ParseInt() の 第2引数 base に 0 以外の値を指定している場合
        // prefix 付きの文字列を指定するとエラーとなる.
        // (ex: 0xff はエラーとなる。 ff はOK)
        parsed, err = strconv.ParseInt(v, 16, 64)
        if err != nil {
            return err
        }

        output.Stdoutl("[original]", v)
        output.Stdoutl("[parsed  ]", parsed)
        output.StdoutHr()
    }
    return nil
}

実行すると以下のようになります。

gitpod /workspace/try-golang (master) $ make run
go run -race main.go -onetime -example ""

ENTER EXAMPLE NAME: strconvs_hex_to_dec

[Name] "strconvs_hex_to_dec"
[original]           ff
[parsed  ]           255
-------------------------------------------------- 
[original]           deadbeef
[parsed  ]           3735928559
-------------------------------------------------- 


[Elapsed] 130.14µs

参考情報

https://pkg.go.dev/strconv@go1.18#ParseInt

https://go.dev/tour/basics/11


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。