如何在C语言中将二进制数组转换成十六进制

如何在C语言中将二进制数组转换成十六进制,c,hex,byte,C,Hex,Byte,所以现在我有一个二进制数字数组,比如{1,1,1,1,0,0,0},我试图找出如何将这个数组转换成C语言中'uint8_t'类型的十六进制数字(在这个例子中,我希望它是0xf0),除非我正在努力想办法。到目前为止,我已经能够将数字转换为十六进制字符串,但我希望它是无符号整数类型。谁能给我一些建议吗?谢谢大家! 试试这个 #include <stdio.h> #include <stdint.h> uint16_t ConvertToDec(uint16_t* bits,

所以现在我有一个二进制数字数组,比如{1,1,1,1,0,0,0},我试图找出如何将这个数组转换成C语言中'uint8_t'类型的十六进制数字(在这个例子中,我希望它是0xf0),除非我正在努力想办法。到目前为止,我已经能够将数字转换为十六进制字符串,但我希望它是无符号整数类型。谁能给我一些建议吗?谢谢大家!

试试这个

#include <stdio.h>
#include <stdint.h>

uint16_t ConvertToDec(uint16_t* bits, uint16_t size)
{
    uint16_t result = 0;

    for (uint16_t i = 0; i < size; i++) {

        result |= bits[i];
        if(i != size-1)
            result <<= 1;
    }

    return result;

}

int main()
{
    uint16_t bits[] = { 1, 1, 1, 1, 0, 0, 0, 0 };
    uint16_t len = (sizeof(bits) / sizeof(bits[0])); // get array size
    uint16_t result = ConvertToDec(bits, len);
    char hex[20];
    sprintf(hex, "0x%02X", result);
    printf("%s", hex);

    return 0;
}
#包括
#包括
uint16\u t转换器TODEC(uint16\u t*位,uint16\u t大小)
{
uint16_t结果=0;
对于(uint16_t i=0;i结果“转换为十六进制”是什么意思?一旦您可以使用
%x打印此
int
(在您的情况下是
uint8\u t
这是Hello,谢谢!我想了几个问题。首先,为什么你的convert_to_dec函数中有I