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 ビットは、トップ = 7 から 0 に埋められ、配列の位置 8 から埋め始め、その後、位置 15 から次の 8 ビットなどの上。どうすればそれを可能にできますか?

なぜ私はこれをしたいのですか:

これが完了したら、p_array 全体から一度に 16 ビットを選択して、次のように新しい配列に保存する必要があるためです。

p_array (最初の 16 ビット) + 新しい配列 (最初は 0) = newarray p_array からの次の 16 ビット + 新しい配列 = newarray ..... というように、新しい配列で最終的な合計を取得します。

4

0 に答える 0