[英]Big number to HEX in golang
我正在嘗試將大數字( big.Int
甚至更好big.Rat
)轉換為十六進制值。
當它們為負 0xff..xx 或固定數字時,我總是遇到轉換數字的問題。
有沒有辦法做到這一點?
不確定您遇到了什么樣的問題,但是 big.Int、big.Float 和 big.Rat 實現了fmt.Formatter
接口,您可以使用帶有%x %X的 printf 系列轉換為十六進制字符串表示,例如:
package main
import (
"fmt"
"math/big"
)
func toHexInt(n *big.Int) string {
return fmt.Sprintf("%x", n) // or %x or upper case
}
func toHexRat(n *big.Rat) string {
return fmt.Sprintf("%x", n) // or %x or upper case
}
func main() {
a := big.NewInt(-59)
b := big.NewInt(59)
fmt.Printf("negative int lower case: %x\n", a)
fmt.Printf("negative int upper case: %X\n", a) // %X for upper case
fmt.Println("using Int function:", toHexInt(b))
f := big.NewRat(3, 4) // fraction: 3/4
fmt.Printf("rational lower case: %x\n", f)
fmt.Printf("rational lower case: %X\n", f)
fmt.Println("using Rat function:", toHexRat(f))
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.