2015-02-09 2 views
-1

Вопрос прост,Как перенести шестнадцатеричные строки в [] байт непосредственно в Go?

как передать "46447381" в []byte{0x46,0x44,0x73,0x81}?

+0

Если вопрос прост, зачем спрашивать нас? Просто прикалываюсь'. Без обид – EdmDroid

+0

Это было бы сложнее, чем я думал, потому что я просто использую hex.EncodeToString, мне интересно, почему я не могу использовать эту функцию для ее возврата. – cuuboy

+0

@EdmDroid да вопрос прост, но это означает, что я хочу простой ответ. – cuuboy

ответ

0

Просто используйте 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] 

Это те же цифры только в десятичной системе базы.

+0

Вы правы, я так глуп, я думал, что это не должно быть перенесено в деку, но на самом деле это должно быть, спасибо. http://play.golang.org/p/S_blDzfpN7 – cuuboy

Смежные вопросы