- ベストアンサー
見たことの無い式で解かりません。
教えていただきたいのですが 以下のようなプログラムがあったのですが、 |= が良くわからないのですが、変数bには なにが入るのでしょうか? switch(変数a) { case 定数a: 変数b |= 's'; break; } 申し訳ありませんがよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
論理和複合代入演算子と思われますが、 アルファベットsと変数bの論理和をとるのも、ちょっと妙なので、演算子がオーバロードされてる可能性があります。
その他の回答 (2)
- charmer29-2
- ベストアンサー率25% (41/159)
回答No.3
#2さんの回答で概ねいいとは思いますが、 いくらなんでも's'の2進表現が00011110というのはないでしょう。 ごく一般的なasciiなどでは0111 0011ですし、仮にメインフレームに見られるEBCDICだとしても、1110 0010ですから。 それはさておき、質問者はCの文法くらいいつでも調べられるようにすべきですね。 例えば演算子の優先順位表でも見れば、必ず出てくる演算子なのですから。 #寧ろ載せてこないのは低俗な初心者本くらい。
- talepanda
- ベストアンサー率58% (45/77)
回答No.2
ビット和の複合代入です。 's'の2進表現は 00011110 なので 例えば、bの2進表現が 10010010 なら bに 10011110 が代入されるということです。
質問者
お礼
ありがとうございます
お礼
ありがとうございます