如何在Go lang中转换uint16中的字符串值?

时间:2016-03-02 17:15:24

标签: parsing go hex

我正在研究一个解决方案,以便将字符串(在我的情况下,字符串是" 05f8")转换为uint16。我进行了研究,但我找不到解决方案有谁知道怎么做?

感谢您的帮助!

2 个答案:

答案 0 :(得分:9)

使用strconv.ParseUintdoc)。

var s = "05f8"
var base = 16
var size = 16
value, err := strconv.ParseUint(s, base, size)

请注意,输出值为uint64,您必须在使用前将其强制转换为类型。

注意(bis)size参数控制要转换的uint的最大大小,因此溢出检查正确完成。

答案 1 :(得分:1)

如果您有兴趣将 string 变成 []uint16,您可以这样做:

package main

import (
   "fmt"
   "golang.org/x/sys/windows"
)

func main() {
   a, e := windows.UTF16FromString("05f8")
   if e != nil {
      panic(e)
   }
   fmt.Printf("%q\n", a) // ['0' '5' 'f' '8' '\x00']
}

或者,如果您确定 string 不包含 NUL 字节,您可以这样做:

package main

import (
   "fmt"
   "golang.org/x/sys/windows"
)

func main() {
   a := windows.StringToUTF16("05f8")
   fmt.Printf("%q\n", a) // ['0' '5' 'f' '8' '\x00']
}
相关问题