在这篇文章中,我们将了解如何使用Golang程序将十六进制数字转换为十进制数字。
十六进制数字与十进制数字
任何数字都包含16位数字,它是基于16进制的,这意味着十六进制数字包含从0到9的十进制数字和额外的6个字母。A-F。
在Go语言中,所有的十六进制数字都以0x或0X开始。例如,0x16F是一个十六进制数。
十进制数字是以10为基数的数字,这意味着数字的每个数字可以有一个整数值,从0到取决于它的位置。例如,23是一个十进制数。
例1:使用IN-BUILD函数将十六进制数转换成十进制数的Go语言代码
语法
func ParseInt(s string, base int, bitSize int) (i int64, err error)
ParseInt()函数用于将一个数字从任何其他基数转换为整数。它使用三个参数,一个是我们希望转换为字符串的基数,另一个是我们希望转换为的基数,第三个是我们希望得到的结果的位数大小。
该函数以无符号的64位数返回结果,如果在转换过程中产生任何错误,则返回错误信息。
算法
- 第1步— 导入软件包fmt、strconv和strings。
-
第2步— 启动 main() 函数。
-
第3步— 初始化要转换为十进制的十六进制数字
-
第4步–通过 strconv.ParseInt() 函数传递十六进制值。
-
第5步 – 最后使用 fmt 包打印十进制整数。
例子
package main
//import the required packages
import (
"fmt"
"strconv"
)
// calling the main function
func main() {
// initialize the hexadecimal number
hexadecimal_num := "23a"
// use the parseInt() function to convert
decimal_num, err := strconv.ParseInt(hexadecimal_num, 16, 64)
// in case of any error
if err != nil {
panic(err)
}
// print the decimal number
fmt.Println("The decimal conversion of", hexadecimal_num, "is ", decimal_num)
// initialize the hexadecimal number
hexadecimal_num = "25f"
//use the parseInt() function to convert
decimal_num, err = strconv.ParseInt(hexadecimal_num, 16, 64)
//in case of any error
if err != nil {
panic(err)
}
// print the decimal number
fmt.Println("The decimal conversion of", hexadecimal_num, "is ", decimal_num)
//initialize the hexadecimal number
hexadecimal_num = "ffff"
// use the parseInt() function to convert hexadecimal to decimal
decimal_num, err = strconv.ParseInt(hexadecimal_num, 16, 64)
//in case of any error
if err != nil {
panic(err)
}
// print the decimal number
fmt.Println("The decimal conversion of", hexadecimal_num, "is", decimal_num)
}
输出
The decimal conversion of 23a is 570
The decimal conversion of 25f is 607
The decimal conversion of ffff is 65535
代码的描述
-
首先,我们必须导入fmt包和strconv包。fmt包允许我们在屏幕上打印任何东西,而strconv方法包含了我们可以用来将十六进制数字转换成十进制的函数。
-
然后我们需要初始化一个字符串来存储十六进制数字。
-
在这个例子中,我们将使用 strconv.ParseInt() 函数。
-
将你希望转换的十六进制字符串作为第一个参数传给函数,将基值作为第二个参数传给函数。
-
将结果存储在一个单独的变量中。在这个例子中,我们使用了decimal_num变量来存储结果。
-
然后我们可以使用 fmt.Println() 函数在屏幕上打印结果。
-
使用不同的十六进制数字,在屏幕上打印出十进制数字。
例2:使用ParseUnit()将十六进制转换成十进制的Go Lang程序
语法
func ParseUint(s string, base int, bitSize int) (uint64, error)
ParseUnit() 函数用于将十六进制数字转换为整数。它使用三个参数,一个是我们希望转换的十六进制字符串,另一个是我们希望转换十六进制数的基数,第三个是我们希望获得结果的整数类型,如int。
该函数返回一个无符号的64位数的结果,如果在转换过程中产生任何错误,则返回一个错误信息。
算法
- 第1步– 导入软件包fmt、strconv和strings。
-
第2步– 启动 main() 函数。
-
第3步– 初始化要转换为十进制的十六进制数字
-
第4步–将十六进制值作为参数传给 strconv.ParseUint() 函数。
-
第5步– 最后使用fmt包打印十进制的整数。
例子
package main
//import the required packages
import (
"fmt"
"strconv"
"strings"
)
//function to get the hexadecimal number from string
func isDecimal(hexaString string) string {
// replace 0x or 0X with empty String
number := strings.Replace(hexaString, "0x", "", -1)
number = strings.Replace(number, "0X", "", -1)
// returns the hexadecimal number from a string
return number
}
func main() {
// initialize the string
var hexaDecimal_num string
hexaDecimal_num = "0x12F"
// calling the isDecimal_num() function
result := isDecimal(hexaDecimal_num)
// call ParseUint() function and pass the hexadecimal number as argument to it
output, err := strconv.ParseUint(result, 16, 64)
// in case of any error
if err != nil {
fmt.Println(err)
return
}
// printing the result on the screen
fmt.Println("The decimal conversion of", hexaDecimal_num, "is", output)
}
输出
The decimal conversion of 0x12F is 303
代码描述
-
首先,我们需要分别导入fmt、strconv和string包。
-
制作一个十六进制字符串函数,将十六进制数字中的0x部分去除,并返回剩余的数字。
-
启动 main() 函数。
-
初始化一个typr string的变量,并将你希望转换的十六进制数字存储到其中。
-
调用 isDecimal_num() 函数并存储其结果。
-
将 isDecimal_num() 的输出作为 ParseUint() 函数的第一个参数。
-
将该函数的输出分别存储在output和err变量中。
-
如果出现错误,在屏幕上打印错误。
-
使用 fmt.Println() 函数在屏幕上打印出十进制数字。
总结
我们已经成功地编译并执行了一个Go语言程序,将十六进制数字转换为十进制数字。