2 回答

TA貢獻1825條經驗 獲得超6個贊
您不能encoding/binary
為此使用,因為那是序列化和反序列化不同值(例如數字)的(內存)字節。您擁有的是數字的基數 2 字符串表示形式。
要獲得它的整數值,你必須解析它。為此,請使用strconv.ParseUint()
:
s := "00000000000000000000000000001011"
u, err := strconv.ParseUint(s, 2, 32)
if err != nil {
? ? panic(err)
}
fmt.Println(u)
此輸出(在Go Playground上嘗試):
11
注意,strconv.ParseUint()
返回的是 type 的值uint64
,所以如果需要uint32
,就得手動轉換一下,eg:
u32?:=?uint32(u)

TA貢獻1802條經驗 獲得超6個贊
例如,
package main
import (
"fmt"
"strconv"
)
func main() {
s := "00000000000000000000000000001011"
fmt.Println(s)
u64, err := strconv.ParseUint(s, 2, 32)
u32 := uint32(u64)
if err == nil {
fmt.Println(u32)
}
}
游樂場:https://play.golang.org/p/yiicgWsb7B_M
輸出:
00000000000000000000000000001011 11
- 2 回答
- 0 關注
- 322 瀏覽
添加回答
舉報