我想采取一个整数,并将其转换为uint8_t数组的十六进制数?转换后,整数在HEX中最长为8个字节。我能够使用一个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我认为这是不使用任何算法和自定义数据类型的最简单直接的方法。谢谢! –