go语言16进制转10进制
时间: 2024-04-24 12:18:59 浏览: 13
在Go语言中,可以使用strconv包中的ParseInt函数将16进制字符串转换为10进制数。下面是一个示例代码:
```go
package main
import (
"fmt"
"strconv"
)
func main() {
hexStr := "1A"
decimal, err := strconv.ParseInt(hexStr, 16, 64)
if err != nil {
fmt.Println("转换失败:", err)
return
}
fmt.Println("转换结果:", decimal)
}
```
在上面的代码中,我们使用strconv.ParseInt函数将16进制字符串"1A"转换为10进制数。第一个参数是要转换的字符串,第二个参数是进制(这里是16进制),第三个参数是结果的位数(这里是64位)。转换结果将存储在decimal变量中,并打印出来。
相关问题
用Go语言写一个十六进制转十进制的函数
可以使用strconv包中的ParseInt函数将输入的十六进制字符串转换为十进制数。
以下是一个示例代码:
```go
package main
import (
"fmt"
"strconv"
)
func hexToDec(hex string) int64 {
dec, err := strconv.ParseInt(hex, 16, 64)
if err != nil {
panic(err)
}
return dec
}
func main() {
hex := "3A"
dec := hexToDec(hex)
fmt.Printf("%s in hex is %d in decimal.\n", hex, dec)
}
```
代码中的`hexToDec`函数接收一个十六进制字符串作为参数,然后使用`strconv.ParseInt`函数将其转换为64位有符号整数类型的十进制数。如果转换失败,则会抛出一个panic。
在`main`函数中,我们将一个十六进制字符串"3A"传递给`hexToDec`函数,然后将返回的十进制数打印出来。
输出:
```
3A in hex is 58 in decimal.
```
注意:该代码仅支持转换小写字母的十六进制字符串。如果输入的字符串包含大写字母,则需要先将其转换为小写字母。
go实现 hmac sha1 返回16进制的函数
下面是一个使用Go语言实现HMAC-SHA1并返回16进制字符串的示例代码:
```go
package main
import (
"crypto/hmac"
"crypto/sha1"
"encoding/hex"
"fmt"
)
func main() {
message := "hello world"
key := "mykey"
mac := hmac.New(sha1.New, []byte(key))
mac.Write([]byte(message))
expectedMAC := mac.Sum(nil)
hexString := hex.EncodeToString(expectedMAC)
fmt.Println(hexString)
}
```
在此示例中,我们使用crypto/hmac和crypto/sha1包来执行HMAC-SHA1哈希。我们使用hmac.New()函数创建一个新的HMAC对象,其中的第一个参数是哈希函数,第二个参数是密钥。然后,我们使用mac.Write()函数输入我们要哈希的消息。最后,我们使用mac.Sum(nil)获取哈希值,并将其传递给hex.EncodeToString()函数,以将其转换为16进制字符串。
运行此程序将输出以下内容:
```
104fb0e174f9d55c9f9e0b3eabe53908290b6cd5
```
这是使用HMAC-SHA1算法生成的16进制字符串哈希值。