因此,目前我有一个二进制数字数组,例如{1,1,1,1,0,0,0,0},我试图弄清楚如何将该数组转换为类型的十六进制数字C语言中的'uint8_t'(在此示例中,我希望它为0xf0),但我一直在努力寻找方法。到目前为止,我已经能够将数字转换为十六进制字符串,但我希望它是无符号整数类型。有人可以给我一些建议吗?谢谢!
尝试一下
#include <stdio.h>
#include <stdint.h>
uint8_t ConvertToDec(uint8_t * bits, uint8_t size)
{
uint8_t result = 0 ;
for(uint8_t i=0; i < size-1; i++ ){
result |=bits[i];
result<<=1;
}
return result;
}
int main()
{
uint8_t bits[] = {1, 1, 1, 1, 0, 0, 0, 0};
uint8_t len = (sizeof(bits)/sizeof(bits[0]));
uint8_t result = ConvertToDec(bits,len);
char hex[5];
sprintf(hex,"0x%02X",result);
printf("%s",hex);
return 0;
}
ConvertToDec将数组转换为8位数字,并使用sprintf将输出以十六进制形式保存到十六进制缓冲区中。最好的问候