Я пытаюсь преобразовать 64-битный адрес zigbee в его эквивалентный шестнадцатеричный адрес. Я прошел много сообщений, но не нашел решения. У меня 64-разрядный адрес в строчном формате, и я хочу, чтобы он был в его эквивалентном шестнадцатеричном формате.Как преобразовать 64-битную строку в шестнадцатеричный?
К примеру, у меня есть
unsigned char ZbAddStr[16] = "0013A20040B5A5EE"
, и я хочу, чтобы преобразовать его в
unsigned char ZbAddNew[8] = {0x00, 0x13, 0xA2, 0x00, 0x40, 0xB5, 0xA5, 0xEE}
.
Как это сделать?
Будет ли какие-либо серьезные недостатки в использовании 'sscanf()', возможно, с строка формата монстра ''% 2X% 2X ...% 2X% 2X "и 8 адресов или в цикле' for (int i = 0; i <8; i ++) sscanf (& ZbAddStr [2 * i], "% 2X ", & ZbAddNew [i]);'? –
@JonathanLeffler, я не пробовал первое предложение, но второе работает для меня. Я не вижу каких-либо серьезных плюсов/минусов, тонких или иных, между этими двумя подходами. –
@CoolNik, хорошо для вас. –