golang base conversion

王林
Release: 2023-05-16 13:13:08
Original
1159 people have browsed it

golang is a very excellent programming language. Its powerful functions and concise syntax make it the choice of more and more developers. In golang, base conversion is a very basic and commonly used operation. Let's learn about base conversion in golang.

In golang, commonly used bases include binary, octal, decimal and hexadecimal. Let's take a look at how to convert between these different bases.

1. Convert decimal to other bases

In golang, you can use the FormatInt function in the fmt package to convert a decimal number into a string in the specified base. The prototype of this function is as follows:

func FormatInt(i int64, base int) string
Copy after login

Among them, i represents the decimal number that needs to be converted, and base is the target base, which can be 2, 8, 10 or 16. For example, to convert the decimal number 18 into binary, the code is as follows:

package main

import (
    "fmt"
    "strconv"
)

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

The running result is:

2进制:10010
Copy after login

In the above code, use the FormatInt function of strconv to convert the decimal number 18 into binary Copy the string and print it.

Similarly, we can convert decimal to other bases by changing the base parameter. For example, to convert the decimal number 18 to octal or hexadecimal, the code is as follows:

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)
}
Copy after login

The running result is:

8进制:22
16进制:12
Copy after login

2. Convert other decimals to decimal

in In golang, you can use the ParseInt function in the strconv package to convert a number represented by a string into a decimal number. The prototype of this function is as follows:

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

Among them, s represents the string to be converted, base represents the base of s, which can be 0, 2, 8, 10 or 16, and bitSize represents the number of digits in the result, which can be is 0, 8, 16, 32 or 64. For example, to convert the binary number 10010 to decimal, the code is as follows:

package main

import (
    "fmt"
    "strconv"
)

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

The running result is:

10进制:18
Copy after login

In the above code, use the ParseInt function of strconv to convert the binary string into a decimal number. and print it out.

Similarly, we can convert strings in other bases into decimal numbers by changing the base parameter. For example, to convert the octal string "22" or the hexadecimal string "12" into a decimal number, the code is as follows:

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)
}
Copy after login

The running result is:

8进制:18
16进制:18
Copy after login

You can see it through the above code It is very convenient to perform hexadecimal conversion in golang. Proficiency in base conversion is essential for golang development work.

The above is the detailed content of golang base conversion. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template