You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将十六进制字节切片转换为32位十进制整数?

将字节切片转换回原32位十进制数值的方法

问题背景

将十进制整数1662489944存入文件前,先转换为8位十六进制字符串,再解码为字节写入文件,代码如下:

str := fmt.Sprintf("%08x", 1662489944)
b, _ := hex.DecodeString(str)
file.Write(b) // 实际写入的字节对应为63 17 95 58

读取文件后得到字节切片:[]byte{63, 17, 95, 58},需将该切片转换回原32位十进制数值1662489944。

解决方法

由于写入的是大端字节序的32位无符号整数(%08x格式化输出的是大端十六进制字符串),可使用binary.BigEndian.Uint32()方法将字节切片解析为uint32类型,直接得到原数值。

示例代码:

package main

import (
	"encoding/binary"
	"fmt"
)

func main() {
	b := []byte{63, 17, 95, 58}
	// 按大端字节序解析字节切片为32位无符号整数
	val := binary.BigEndian.Uint32(b)
	fmt.Println(val) // 输出:1662489944
}

验证说明

原数值1662489944的十六进制表示为6317953A,对应字节依次是0x63(63)、0x17(17)、0x95(95)、0x3A(58),与读取到的字节切片完全匹配,因此用大端字节序解析是正确的。

内容的提问来源于stack exchange,提问作者Dallin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 15:25:19