首頁  >  文章  >  後端開發  >  golang 進位轉化

golang 進位轉化

王林
王林原創
2023-05-16 13:13:081165瀏覽

golang 是一門非常優秀的程式語言,其強大的功能和簡潔的語法使得它成為了越來越多開發者的選擇。在 golang 中,進位轉換是一個非常基礎、常用的操作,下面我們來一起了解 golang 中的進位轉換。

在 golang 中,常用的進制有二進制、八進制、十進制和十六進制。下面我們來看看如何在這些不同進制之間進行轉換。

1.十進位轉換為其他進位

在 golang 中,可以使用 fmt 套件中的 FormatInt 函數來將一個十進制數轉換為指定進位的字串。函數的原型如下:

func FormatInt(i int64, base int) string

其中,i 表示需要轉換的十進位數,base 是目標進制,可以是 2、8、10 或 16。例如,將十進制數18 轉換為二進制,程式碼如下:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    n := int64(18)
    b := strconv.FormatInt(n, 2)
    fmt.Printf("2进制:%s
", b)
}

運行結果為:

2进制:10010

在上面的程式碼中,使用strconv 的FormatInt 函數將十進制數18 轉換為2 進製字串,並將其列印出來。

類似的,我們可以將十進位轉換為其他進制,只需要改變 base 參數。例如將十進制數18 轉換為八進位或十六進制,程式碼如下:

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.其他進位轉換為十進位

#在golang 中,可以使用strconv 套件中的ParseInt 函數將一個字串表示的數字轉換為十進位數。此函數的原型如下:

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。例如將二進制數10010 轉換為十進制,程式碼如下:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    b := "10010"
    n, _ := strconv.ParseInt(b, 2, 64)
    fmt.Printf("10进制:%d
", n)
}

運行結果為:

10进制:18

在上面的程式碼中,使用strconv 的ParseInt 函數將二進位字串轉換為十進制數,並將其列印出來。

類似的,我們可以將其他進位的字串轉換為十進位數,只需要改變 base 參數。例如將八進位字串"22" 或十六進位字串"12" 轉換為十進制數,程式碼如下:

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)
}

運行結果為:

8进制:18
16进制:18

透過上面的程式碼可以看出,在golang 中進行進位轉換非常方便。熟練進制轉換,對於 golang 開發工作不可或缺。

以上是golang 進位轉化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn