C 論理演算 新しいページはコチラ
提供: yonewiki
(→論理演算) |
(→論理演算) |
||
30行: | 30行: | ||
| 1 || 1 || 1 | | 1 || 1 || 1 | ||
|} | |} | ||
+ | 値1と値2のどちらかが1(真=true)になっていたら結果は1(真=true)になります。したがって、すべてが0(偽=false)のときだけ結果が0(偽=false)になります。値1 || 値2 || 値3 のようにまとめて記述しても良いです。値1と値2の計算結果と値3の論理和を計算するように処理が実行されます。カッコをつけて値1 || (値2 || 値3)のようにすると演算順序優先度はカッコの中が優先されます。これは一般的な算数(数学)の法則と似ているので覚えやすいでしょう。 | ||
+ | |||
論理積の演算子は '''&&''' です。 | 論理積の演算子は '''&&''' です。 | ||
− | {| class="wikitable_ronriseki" | + | {| class="wikitable_ronriseki" border="1" cellspacing="0" |
|- | |- | ||
! 値1 !! 値2 !! 結果 | ! 値1 !! 値2 !! 結果 | ||
44行: | 46行: | ||
| 1 || 1 || 1 | | 1 || 1 || 1 | ||
|} | |} | ||
+ | 値1と値2の全てが1(真=true)になっていたら結果は1(真=true)になります。したがって、いずれかが0(偽=false)のときには結果が0(偽=false)になります。 | ||
+ | |||
+ | |||
+ | このように論理和を日本語で表現する場合に「あるいは」とか「もしくは」とか「または」という言葉を当てはめることができ、論理積は「かつ」という言葉を当てはめることが多く、「値1 または 値2」や「値1 かつ 値2」のようにも表現します。 | ||
+ | |||
+ | 論理否定は一つの論理値の手前に ! をとします。 | ||
+ | {| class="wikitable_ronriseki" border="1" cellspacing="0" | ||
+ | |- | ||
+ | ! 値1 !! 結果 | ||
+ | |- | ||
+ | | 0 || 1 | ||
+ | |- | ||
+ | | 1 || 0 | ||
+ | |} | ||
+ | 値1が0(偽=false)になっていたら結果は1(真=true)になります。逆に値1が1(真=true)になっていたら結果は0(偽)になります。 | ||
+ | |||
+ | |||
+ | このように論理否定を日本語で表現する場合「の反対」とか「の否定」とか「の逆」という言葉をあてはめることが多く「値1の否定」のようにも表現します。 | ||
+ | |||
+ | |||
+ | 上記のような論理演算をプログラムで表現する場合には以下のようなものになります。 | ||
+ | |||
+ | というように記述します。 | ||
+ | |||
+ | |||
+ | 値の部分はBool型のようなもの同士が理解しやすいですが、Bool型以外の値同士でも論理演算を行うことは可能です。一般の算数(数学)における0(Zero)という値だけが0(偽=false)として扱われるので、任意の型の変数の実体が0以外のなんらかの値を保有していれば1(真=true)であることになります。この部分はプログラミング言語の処理系によって異なることが多いので混同してしまう多言語プログラマは多いかもしれませんね。 |