Я хотел бы взять int и преобразовать его в массив uint8_t шестнадцатеричных чисел? После преобразования значение int равно 8 байтам в HEX. Я был в состоянии использовать метод, который преобразует INT (19604) в массив uint8_t, как это:Преобразование int в uint8_t массив Значение HEX
00-00-00-00-00-00-00-00-04-0C-09-04
Но мне нужно, чтобы выглядеть следующим образом:
00-00-00-00-00-00-00-00-00-00-4C-94
алгоритм я использовал этот :
void convert_file_size_to_hex(long int size)
{
size_t wr_len = 12;
long int decimalNumber, quotient;
int i=wr_len, temp;
decimalNumber = size;
quotient = decimalNumber;
uint8_t hexNum[wr_len];
memset(hexNum, 0, sizeof(hexNum));
while(quotient != 0) {
temp = quotient % 16;
hexNum[--i] = temp;
quotient /= 16;
}
Как я могу это сделать? Должен ли я использовать другой алгоритм или я должен попытаться сдвинуть результат? Я немного новичок, чтобы немного переместиться на C, поэтому какая-то помощь будет отличной. Спасибо!
+1 Я думал, что это самый простой и прямой способ сделать это без использования каких-либо алгоритмов и пользовательских типов данных. Спасибо! –