2016-07-19 11 views
0

Итак, у меня есть NSData с сервера backend, мой инженер-разработчик говорит, что есть простая логика декодирования, и мне нужно получить второй байт.Формат кодировки команды LLDB po « 332»

Так что я превратили этот NSData в байт массива с помощью

const unsigned char *usageBuf = (unsigned char *)[keyData bytes];

Когда я распечатать его на LLDB, он выводит как:

(lldb) ро usageBuf «\ x16 \ 332d \ 336C \ xa2Jc \ x88./Q \ 374 \ 326 [\ x01 \ x01 \ xa8 \ 314 \ x96 \ x8d \ 320.c \ x8bѐ \ г \ xb7' \ 317 \ 366 \ 342 \ 206> \ x1fE \ 322e \ x91 \ 311 \ 354 \ 302 "

однако, когда я пытаюсь напечатать usageBuf [1], это как:

(lldb) po usageBuf[0] 
'\x16' 

(lldb) po usageBuf[1] 
'\xda' 

(lldb) po/x usageBuf[1] 
0xda 

(lldb) po usageBuf[2] 
'd' 

Я смущен, как '\ 332' превратилась в '\ XDA'? Я искал таблицу UTF8, но он просто говорит UTF-8 0x5C 0x33 0x33 0x32, поэтому мне, должно быть, не хватает некоторых головоломок, пожалуйста, помогите, спасибо!

ответ

1

Это вопрос численной базы:

шестигранной DA == == Декабрь 218 Октябрь 332

+0

так как я знаю, что это Октябрь? UTF8 основан на oct? – Wingzero

+0

Я спрашиваю об этом, потому что первый байт равен \ x16, а второй - \ 332, тогда третий байт равен 'd', поэтому '\ x16' и 'd' кажутся шестнадцатеричными, но \ 332 - октябрь, не должны ли они быть последовательной базой/форматом? например когда я печатаю useBuf, он дает «\ x16 \ xdad» – Wingzero

+0

Проверьте код для LLDB. Он выбирает формат вывода. – Avi

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

  • Нет связанных вопросов^_^