• 締切済み

プログラミングのことで教えていただきたいのですが・・・

以下のプログラムを使用して、8桁の2進数の2の補数を計算するプログラムを作成しなさい。 という問題です。 配列aを変更するとどう変わるか添えて提出しなければならないのですがどうしても分かりません。 void main(){ int a[8]={0,1,0,1,0,1,0,1}; int b[8]; twos_complement(a, b);//補数の計算 print_bin(“a=”,a);/*配列の表示*/ print_bin(“b=”,b); } 実行結果: a=01010101 b=10101011 どなたかご教授お願いします。

みんなの回答

回答No.1

単純に回答を書けば「丸投げ」になりますので まず >8桁の2進数の2の補数を計算するプログラム ですから「2の補数」は理解していますか? 「2の補数」は対象となる内容をビット反転し、その結果に+1することで求められます。 二進数で「00000001」なら、補数は(反転:11111110)+1で「11111111」です。 その補数の計算を >twos_complement(a, b);//補数の計算 で行います。 渡す引数の型などは >int a[8]={0,1,0,1,0,1,0,1}; から判断できます。 >print_bin(“a=”,a);/*配列の表示*/ >print_bin(“b=”,b); は 実行結果 >a=01010101 >b=10101011 から、どのように内容を表示すればよいのかが判断できます。