我在 C 中有一个1&0和1的数组。
int foo[8];
int main()
{
int i = 0;
for (i; i < 8; i++)
{
foo[i] = 0;
}
foo[1] = 1;
foo[3] = 1;
}
所以,我的阵列现在是这样的:
01010000
我想将此数组的bin
表示形式转换为hex
数字。
在这种情况下,它将 0x50 。
有没有快速简便的方法呢?
答案 0 :(得分:0)
这样的东西,为了适应性?
int start = 0, size = 4, i, value = 0;
for (i=start;i<size+start;i++) {
value *= 2;
if (foo[i] == '1') {
value ++;
}
}
简单的模运算。 value
将最终为0-15,您可以轻松地将其转换为十六进制字符,并迭代循环以收集所需/可用的十六进制数字。