您的位置:首页 > 技术中心 > 其他 >

golang 进制转化

时间:2023-05-16 22:28

golang 是一门非常优秀的编程语言,其强大的功能和简洁的语法使得它成为了越来越多开发者的选择。在 golang 中,进制转化是一个非常基础、常用的操作,下面我们来一起了解一下 golang 中的进制转换。

在 golang 中,常用的进制有二进制、八进制、十进制和十六进制。下面我们来看一下如何在这些不同进制之间进行转换。

1.十进制转化为其他进制

在 golang 中,可以使用 fmt 包中的 FormatInt 函数来将一个十进制数转化为指定进制的字符串。该函数的原型如下:

func FormatInt(i int64, base int) string

其中,i 表示需要转化的十进制数,base 是目标进制,可以为 2、8、10 或 16。例如,将十进制数 18 转化为二进制,代码如下:

package mainimport (    "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 mainimport (    "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进制:2216进制: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 mainimport (    "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 mainimport (    "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进制:1816进制:18

通过上面的代码可以看出,在 golang 中进行进制转换非常方便。熟练掌握进制转换,对于 golang 开发工作必不可少。

以上就是golang 进制转化的详细内容,更多请关注Gxl网其它相关文章!

热门排行

今日推荐

热门手游