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 語言程式,用於將十六進位制數轉換為十進位制數。

更新於: 2022-11-16

7K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告