Вопрос прост,Как перенести шестнадцатеричные строки в [] байт непосредственно в Go?
как передать "46447381"
в []byte{0x46,0x44,0x73,0x81}
?
Вопрос прост,Как перенести шестнадцатеричные строки в [] байт непосредственно в Go?
как передать "46447381"
в []byte{0x46,0x44,0x73,0x81}
?
Просто используйте hex.DecodeString()
функцию:
s := "46447381"
data, err := hex.DecodeString(s)
if err != nil {
panic(err)
}
fmt.Printf("% x", data)
Выход:
46 44 73 81
Попробуйте его на Go Playground.
Примечание:
Если вы просто распечатать байты кусочка, используя fmt.Println(data)
, напечатанные значения будут в десятичном формате, поэтому он не будет соответствовать вашему вкладу string
(так как он указан в шестнадцатеричном формате) ,
Выход fmt.Println(data)
будет:
[70 68 115 129]
Это те же цифры только в десятичной системе базы.
Вы правы, я так глуп, я думал, что это не должно быть перенесено в деку, но на самом деле это должно быть, спасибо. http://play.golang.org/p/S_blDzfpN7 – cuuboy
Если вопрос прост, зачем спрашивать нас? Просто прикалываюсь'. Без обид – EdmDroid
Это было бы сложнее, чем я думал, потому что я просто использую hex.EncodeToString, мне интересно, почему я не могу использовать эту функцию для ее возврата. – cuuboy
@EdmDroid да вопрос прост, но это означает, что я хочу простой ответ. – cuuboy