ID非公開

2020/9/18 2:13

11回答

C言語の問題です。

C言語の問題です。 int a=5 int b=0 int c=2 の時、 (1)b ? a : c (2)a > 5 ? 1 : 0 (3)a & 5 & c (4)a |b |c |63 これら各式の評価の仕方がわかりません。 どなたかわかりやすく教えて頂けないでしょうか。よろしくお願いいたしますm(_ _)m

補足

!a を評価した値は、0ですか?

ベストアンサー

0

>(1)b ? a : c 三項演算子ですね。 b が真(1)だったら a、そうでなければ c を返します。∴ 2になります。 >(2)a > 5 ? 1 : 0 a > 5 が真なら 1、そうでなければ 0 を返します。∴ 0になります。 >(3)a & 5 & c 二進表記にしてビット演算します。 0101 & 0101 は 0101、0101 & 0010 は 0000。∴ 0になります。 >(4)a |b |c |63 0101 | 0000 は 0101、0101 | 0010 は 0111、00000111 | 00111111 は00111111(63)になります。 というか、最後の63という数値は、上位バイト(16x3)を差し引いた残りが15(1111)になるので、下位バイトはそこまでの演算結果に関わらず 15(1111)になると思うのですが・・・

ID非公開

質問者

2020/9/18 5:45

参考になりました。ありがとうございました(﹡ˆ﹀ˆ﹡)

ThanksImg質問者からのお礼コメント

ありがとうございました(﹡ˆ﹀ˆ﹡)

お礼日時:9/18 5:45