数组1和0到0到十六进制

时间:2014-05-14 21:41:42

标签: c types

我在 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

有没有快速简便的方法呢?

1 个答案:

答案 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,您可以轻松地将其转换为十六进制字符,并迭代循环以收集所需/可用的十六进制数字。