Rem*_*rio 0 type-conversion go
您好我想在golang中使用00000000000000000000000000001011转换为uint32
var v = "00000000000000000000000000001011"
fmt.Printf("%T\n", v)
c := []byte(v)
u := binary.LittleEndian.Uint32(c)
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
你不能使用encoding/binary它,因为它是序列化和反序列化不同值(例如数字)的(内存)字节.你拥有的是数字的基数2字符串表示.
要获取其整数值,您必须解析它.为此,使用strconv.ParseUint():
s := "00000000000000000000000000001011"
u, err := strconv.ParseUint(s, 2, 32)
if err != nil {
panic(err)
}
fmt.Println(u)
Run Code Online (Sandbox Code Playgroud)
输出(在Go Playground上试试):
11
Run Code Online (Sandbox Code Playgroud)
请注意,strconv.ParseUint()返回值类型uint64,因此如果需要uint32,您必须手动转换它,例如:
u32 := uint32(u)
Run Code Online (Sandbox Code Playgroud)
从字符串中解析数字有更多选项,概述,检查Go中的将字符串转换为整数类型?