golang 操作16进制
时间: 2023-07-26 14:20:43 浏览: 215
在 Golang 中,可以使用 `fmt` 包中的 `%X` 标记来将一个整数转换为 16 进制字符串。
以下是一个将整数转换为 16 进制字符串的示例代码:
```
package main
import (
"fmt"
)
func main() {
num := 255
hexStr := fmt.Sprintf("%X", num)
fmt.Println(hexStr) // 输出: FF
}
```
如果要将一个 16 进制字符串转换为整数,可以使用 `strconv` 包中的 `ParseInt` 函数,并指定进制为 16。
以下是一个将 16 进制字符串转换为整数的示例代码:
```
package main
import (
"fmt"
"strconv"
)
func main() {
hexStr := "FF"
num, err := strconv.ParseInt(hexStr, 16, 64)
if err != nil {
// 转换失败
fmt.Println(err)
return
}
fmt.Println(num) // 输出: 255
}
```
在这个例子中,`strconv.ParseInt` 函数的第二个参数指定进制为 16,第三个参数指定整数类型为 64 位整数。如果转换失败,函数会返回一个非空的错误对象。
相关问题
golang生成16进制随机数
在 Go 语言中,可以通过 crypto 包的 rand 包来生成随机数。生成随机数的过程包括两个步骤,第一步是生成随机数种子,第二步是利用种子生成随机数。下面是一个生成 16 进制随机数的示例代码:
```
package main
import (
"crypto/rand"
"encoding/hex"
"fmt"
)
func main() {
b := make([]byte, 4)
_, err := rand.Read(b)
if err != nil {
fmt.Println("error:", err)
return
}
fmt.Println(hex.EncodeToString(b))
}
```
上述代码中,首先通过 `make` 函数创建一个长度为 4 的 byte 数组 `b`,然后调用 `rand.Read` 函数来生成随机数种子,并将随机数种子填充到数组 `b` 中。最后,利用 `hex.EncodeToString` 函数将数组 `b` 转换为 16 进制字符串输出。
golang []byte 转int16
可以使用binary包中的函数来实现:
```
package main
import (
"encoding/binary"
"fmt"
)
func main() {
b := []byte{0x01, 0x02} // 16进制表示的字节切片
i := binary.LittleEndian.Uint16(b) // 将字节切片转换为uint16类型
fmt.Println(i) // 输出: 513
}
```
在上面的例子中,我们将`[]byte`类型的字节切片`b`转换为`uint16`类型的整数`i`,并输出了结果。在这里,我们使用了binary包中的`LittleEndian.Uint16`函数将字节切片转换为`uint16`类型的整数。注意,这里的字节序是小端序,如果你的字节切片是大端序的,可以使用`BigEndian.Uint16`函数。
阅读全文