Golang 将十六进制转换为十进制

Golang 将十六进制转换为十进制

在本文中,我们将了解如何使用Golang程序将十六进制转换为十进制数。

十六进制数与十进制数

任何数字包含16个数字,它基于16进制,这意味着十六进制数包含从0到9的十进制数和额外的6个字母A−F。

在Go语言中,所有的十六进制数都以0x或0X开头。例如,0x16F是一个十六进制数。

十进制数是具有10为基数的数,这意味着一个数字的每个数字在其位置上都可以具有从0到具体取决于其位置的整数值。例如,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:使用ParseUnit()函数在Go语言程序中将十六进制数转换为十进制数

语法

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() 函数。

  • 初始化一个类型为string的变量,并将希望转换的十六进制数存储到该变量中。

  • 调用 isDecimal_num() 函数并存储其结果。

  • isDecimal_num() 的输出作为 ParseUint() 函数的第一个参数。

  • 分别将函数的输出存储到output和err变量中。

  • 如果出现错误,则在屏幕上打印出错误。

  • 使用 fmt.Println() 函数在屏幕上打印出十进制数。

结论

我们已成功编译并执行了一个Go语言程序,将十六进制数转换为十进制数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程