Строка - это байтовый массив. Приведение одного к другому получает то, что вы видите; символ a
имеет целочисленное значение (97 или 61 в шестнадцатеричном формате), и вы получаете байтовый массив, который составляет строку символов. Если вы хотите, чтобы строка "ff"
стала целым числом 255 (ff
в шестнадцатеричном), то это не приведение, а разбор (декодирование) строки на основе определенной логики (то есть, что строка состоит из шестнадцатеричных представлений ASCII). цифр). Для этого вы хотите использовать соответствующий декодер, то есть стандартную библиотеку hex.DecodeString
, как предложил mh-cbon:
src := []byte("68656c6c6f20776f726c64")
dst := make([]byte, hex.DecodedLen(len(src)))
n, err := hex.Decode(dst, src)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", dst[:n])