<分区>
我正在尝试存储一个十六进制字符串值:ex "3958ABBFEC23BD40"到 uint64,就像这样:
fmt.Println(myuint64)
$ 0x3958ABBFEC23BD40
我尝试过使用编码/十六进制,或将 strconv 转换为 int 等...我找不到任何解决方案。
file, err := os.Open("myfile")
if err != nil {
fmt.Println("erreur",err)
}
b := bufio.NewReader(file)
a,_ := b.Peek(16)
d, err := strconv.ParseUint(string(a), 0, 64)
if err != nil {
panic(err)
}
fmt.Printf("%d\n%s\n", d,string(a))
显然我没有得到预期的结果:
$ 4132241498901298496
fcb9ca7c63ec7c5d
预期:
$ 0xfcb9ca7c63ec7c5d
使用以下代码,我已经检索到好的 uint,但我不能将它转换为十六进制,除非使用 strconv,但我不想使用字符串。
v := *(*[8]byte)(unsafe.Pointer(&d))
var final []byte = v[:]
var n uint64
buf := bytes.NewBuffer(final)
binary.Read(buf, binary.LittleEndian, &n)
fmt.Println(strconv.FormatUint(n, 16))
结果:$ fcb9ca7c63ec7c5d
但为字符串,预期为 $ fcb9ca7c63ec7c5d
类型的 uint64...