溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

golang不同進(jìn)制之間怎么進(jìn)行轉(zhuǎn)換

發(fā)布時間:2023-05-18 10:27:31 來源:億速云 閱讀:158 作者:zzz 欄目:編程語言

這篇“golang不同進(jìn)制之間怎么進(jìn)行轉(zhuǎn)換”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“golang不同進(jìn)制之間怎么進(jìn)行轉(zhuǎn)換”文章吧。

1.十進(jìn)制轉(zhuǎn)化為其他進(jìn)制

在 golang 中,可以使用 fmt 包中的 FormatInt 函數(shù)來將一個十進(jìn)制數(shù)轉(zhuǎn)化為指定進(jìn)制的字符串。該函數(shù)的原型如下:

func FormatInt(i int64, base int) string

其中,i 表示需要轉(zhuǎn)化的十進(jìn)制數(shù),base 是目標(biāo)進(jìn)制,可以為 2、8、10 或 16。例如,將十進(jìn)制數(shù) 18 轉(zhuǎn)化為二進(jìn)制,代碼如下:

package main

import (
    "fmt"
    "strconv"
)

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

運(yùn)行結(jié)果為:

2進(jìn)制:10010

在上面的代碼中,使用 strconv 的 FormatInt 函數(shù)將十進(jìn)制數(shù) 18 轉(zhuǎn)化為 2 進(jìn)制字符串,并將其打印出來。

類似的,我們可以將十進(jìn)制轉(zhuǎn)化為其他進(jìn)制,只需要改變 base 參數(shù)即可。例如將十進(jìn)制數(shù) 18 轉(zhuǎn)化為八進(jìn)制或十六進(jìn)制,代碼如下:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    n := int64(18)
    o := strconv.FormatInt(n, 8)
    h := strconv.FormatInt(n, 16)
    fmt.Printf("8進(jìn)制:%s
", o)
    fmt.Printf("16進(jìn)制:%s
", h)
}

運(yùn)行結(jié)果為:

8進(jìn)制:22
16進(jìn)制:12

2.其他進(jìn)制轉(zhuǎn)化為十進(jìn)制

在 golang 中,可以使用 strconv 包中的 ParseInt 函數(shù)將一個字符串表示的數(shù)字轉(zhuǎn)化為十進(jìn)制數(shù)。該函數(shù)的原型如下:

func ParseInt(s string, base int, bitSize int) (i int64, err error)

其中,s 表示待轉(zhuǎn)化的字符串,base 表示 s 的進(jìn)制,可以為 0、2、8、10 或 16,bitSize 表示結(jié)果的位數(shù),可以為 0、8、16、32 或 64。例如將二進(jìn)制數(shù) 10010 轉(zhuǎn)化為十進(jìn)制,代碼如下:

package main

import (
    "fmt"
    "strconv"
)

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

運(yùn)行結(jié)果為:

10進(jìn)制:18

在上面的代碼中,使用 strconv 的 ParseInt 函數(shù)將二進(jìn)制字符串轉(zhuǎn)化為十進(jìn)制數(shù),并將其打印出來。

類似的,我們可以將其他進(jìn)制的字符串轉(zhuǎn)化為十進(jìn)制數(shù),只需要改變 base 參數(shù)即可。例如將八進(jìn)制字符串 "22" 或十六進(jìn)制字符串 "12" 轉(zhuǎn)化為十進(jìn)制數(shù),代碼如下:

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進(jìn)制:%d
", on)
    fmt.Printf("16進(jìn)制:%d
", hn)
}

運(yùn)行結(jié)果為:

8進(jìn)制:18
16進(jìn)制:18

以上就是關(guān)于“golang不同進(jìn)制之間怎么進(jìn)行轉(zhuǎn)換”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI