C ++中的二进制输出并在数组中保存二进制字符串

时间:2013-11-08 17:13:19

标签: c++ arrays binary indexing

我已经更正了代码:

//binary string input: if i enter abcd it gives its binary rep in 0's and 1's

其次,我想在保存二进制字符串时循环遍历数组:

int main() {

string msg;
int i;
int j;
int k;
int m[8];
int array[100];
int s;
int p_array[100];


// Taking a string as input from user............................................input

cout << "Please enter your msg :\n>";
getline(cin, msg);
//cout << "You entered: " << data;
for(i=0;i<=msg.size();i++){
for (j=0;j<8;j++){
    m[j]= msg[i] % 2;  //remainder gives us binary value
        msg[i] = msg[i]/2;
}
int top, k,p;
for(k=0,top =7; k<8; k++,top--){
p_array[p]= m[top];

}

cout << array;
return 0;
}

问题1:输出给出了abcd = 0x22fbd0的这个值。为什么?我希望二进制值。如果我不使用数组并只采取cout&lt;&lt; m [top]我得到了abcd的二进制形式。

问题2:我想以这种方式填充p_array:数组之后的后8位从top = 7填充到0,从数组中的位置8开始填充,然后从位置开始填充后8位15等等。我应该如何做到这一点?

为什么我要这样做:

因为在完成此操作之后,然后从整个p_array中我需要一次选取16位并以这种方式将其保存到新数组:

p_array(前16位)+新数组(最初为0)= newarray 接下来16位来自p_array + new array = newarray .....等等,直到我得到新数组的最终总和。

0 个答案:

没有答案
相关问题