• 締切済み

どなたか、教えて下さい

4つの変数a, a1, b, b1(全てint 型)に対して次の演算を実行します a に0 を代入 b に1 を代入 a1 = ~a b1 = ~b その後、4つの変数の値を10進数で表示するプログラムを書いてください。 この問題の考え方を教えて下さい!講習で必ず受ける必要がある講座だったのですが、 全く分からないので考え方をどなたか教えて下さい。宜しくお願いします。

みんなの回答

  • take0_0
  • ベストアンサー率46% (370/804)
回答No.1

CかC++っぽいのでそのつもりで回答します。 なお、ここより「[技術者向] コンピューター >プログラミング >C&C++」で聞いた方が回答が付き易いです。 考え方は・・・ ・変数の型と、格納されている数字の進数は関係ありません ・8,10,16進数の表示なら、printf関数を使えば楽です(参考UEL) ちなみに答えは、b1はゼロになるので良いのですが、a1は符号の扱いをどうするかによって変わってきます。素直に読めばunsigned intではなくintでと書いてあるので、符号付10進数で出力すれば良いと思います。 また、細かい話になるので出題者はそこまで意図していないのでしょうが、一応指摘しておきます。 int型のサイズは規格で決まっていませんので、処理系によって答えが変わってきます。特にa1は全てのビットが1になるので、int型のサイズによって出力結果が変わります。 今回はプログラミングの問題なので、コード自体は変わらないんですけどね。実行結果まで示せとなっていたら、違う場合もありうるということです。

参考URL:
http://wisdom.sakura.ne.jp/programming/c/c57.html

関連するQ&A