0

我已经更正了代码:

//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<< m[top] 我得到 abcd 的二进制形式。

问题2:我想以这种方式填充p_array:数组后的下一个8位从top = 7填充到0,从数组中的第8位开始填充,然后从第15位开始填充接下来的8位,依此类推上。我应该如何做到这一点?

我为什么要这样做:

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

p_array(前 16 位)+ 新数组(最初为 0)= newarray 下一个 16 位来自 p_array + 新数组 = newarray .....依此类推,直到我得到新数组中的最终总和。

4

0 回答 0