2012-09-08 145 views
0

我有两个变量:二进制INT二进制字符

int binary[8]; 
char array; 

其中二元变量只“0”和“1”。所以,我想这样做,请按照

for (i=0;i<8;i++) 
    if(binary[i]) 
     "Here I want put 1 in the position bit of the variable array" 
    else 
     "Here I want put 0 in the position bit of the variable array" 

我将如何做到这一点?

+0

研究按位AND和OR运算符。如果您选择使用它,则按位否定可以帮助后一部分。 – chris

回答

2

如果我理解你的权利,这样的事情应该工作...

int binary[8]; 
char array = 0; 

int n = 8; 
while (n) { 
    array |= binary[--n]; 
    array <<= 1; 
} 

这应该在任何兼容C99-环境下CHAR_BIT至少8工作。

2
for (int i = 0; i < 8; i++) 
    array |= binary[i] << i;