DOBON.NET DOBON.NETプログラミング掲示板過去ログ

C++ 演算子の動作。

環境/言語:[C++]
分類:[その他]

こんにちわ。
C++ の演算子に 「!(not)」があるかと思うのですが、
先日他人のソースコードを眺めていたら、

 bool b = !!(value & (1 << 4));

(valueはunsigned char)

この記述は、notを二回しているということなんでしょうか?
宜しくお願いします。
ご指摘のとおり、真偽判定 not を2回行っているわけだけど、これはもっと人間に読みやすく書き直すことができて
!!a は a!=0 と同じだよ。

C の真偽判定は、結果 0 か 1
C++ の真偽判定は、結果 false か true (が自動で 0 か 1 に自動変換される)
ので、結局のところ提示コードは value の bit 4 を抽出しているわけですな。
ありがとうございました
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板