Go语言程序:将十六进制转换为十进制
本文将介绍如何使用 Go 语言程序将十六进制数转换为十进制数。
十六进制数与十进制数
任何包含 16 位数字的数字,都是基于 16 进制的,这意味着十六进制数包含从 0 到 9 的十进制数,以及额外的 6 个字母 A-F。
在 Go 语言中,所有十六进制数都以 0x 或 0X 开头。例如,0x16F 是一个十六进制数。
十进制数是以 10 为基数的数字,这意味着数字的每一位都可以具有从 0 到 9 的整数值,具体取决于其位置。例如,23 是一个十进制数。
示例 1:使用内置函数将十六进制数转换为十进制数的 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:使用 ParseUint() 将十六进制转换为十进制的 Go 语言程序
语法
func ParseUint(s string, base int, bitSize int) (uint64, error)
ParseUint() 函数用于将十六进制数转换为整数。它使用三个参数:第一个是要转换的十六进制字符串,第二个是要将十六进制数转换到的基数,第三个是要获取结果的整数类型(如 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 包。
创建一个 hexa 字符串函数,该函数将删除十六进制数中的 0x 部分,并返回剩余的数字。
启动 main() 函数。
初始化一个字符串类型的变量,并将要转换的十六进制数存储到其中。
调用 isDecimal_num() 函数并存储其结果。
将 isDecimal_num() 的输出作为 ParseUint() 函数的第一个参数传递。
将函数的输出分别存储在 output 和 err 变量中。
如果发生错误,则在屏幕上打印错误。
使用 fmt.Println() 函数在屏幕上打印十进制数。
结论
我们已经成功编译并执行了一个 Go 语言程序,用于将十六进制数转换为十进制数。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP