Вы не можете использовать 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()
возвращает значение типа uint64
, поэтому, если вам нужно uint32
, вы должны вручную преобразовать его, например:
u32 := uint32(u)
Для разбора чисел из строк есть ещеобзор, проверьте Преобразовать строку в целочисленный тип в Go?