論理否定 !演算子は論理式が持っている値を0なら1へ1なら0へひっくり返します。 


アレサ 「では、再び(^^)/


演算子について学んでいきます。


マックスさんたちが 山の幸を採集している間に


こちらもC言語採集しましょうよ。


!演算子は論理式のもつ真か偽の値 0か1を


0なら1へ

1なら0へ   と


ひっくり返す演算子です。


つぎのプログラムをみていきましょう。


#include <stdio.h>


int main(void){

printf("%d\n", (10>1));

printf("%d\n", !(10>1));

return 0;

}


プログラムの実行結果


1

0


アレサ「このプログラムの実行結果をみてもおわかりになられますように


(10>1)の論理式(真)の値1が


!演算子により


(偽)の値0へとひっくりかえっているのがわかります。


では・・・では



    論理式!(5>1&&10>1)は どのような値をもつでしょうか?



(うふっ 数学における集合では


集合{x>1かつx>5} の補集合は


{x<=1またはx<=5}


つまり


 {x<=5}となりますが


それはここでは関係ないようですね。)



どうしましょう。


!(5>1&&10>1)のような論理式がもつ値を


計算するのはとても簡単です。


コンピューターにおいては


論理式は0か1の値、いずれかの値しかもたないため


論理式 5>1は真の値1をもち

論理式 10>1も真の値1をもちます。


そこで


論理式!(5>1&&10>1)は


論理式!(1&&1)


と書き直せます。


!(1&&1)の中身である


(1&&1)、(1かつ1と呼びたくなりますが正確には数学における1かつ1ではありません

(0&&1)は0かつ1と呼んだ場合

0かつ1の値をもつようにおもえてきますね

ですが

そのようなことはなく

(0&&1)は真の値1をもちます





真の値1をもつようあらかじめ設定されているので


(1&&1)=1となるので


論理式!(1&&1)=!1となり


ここで!演算子の働きにより1の値が反転し


!1=0となります。


よって


論理式!(5>1&&10>1)は0の値をもちます



これで論理式の項目の学習範囲がすべて終わりました。


明日からの


if文がとっても楽しみです。


これらの論理式の仕組みが理解できると


論理式の値が1なら 命令文を実行する


論理式の値が0なら 命令文を実行しない


のような 場合分けのプログラムが作製できるようになるんです。


シューティングゲームなら


コントローラーボタンをおすと レーザーがでる、


コントローラーボタンをおさないと レーザーがでない、


という具合に、です。


これまでよりプログラミングの幅がひろがっていくんです。


いいところまできました。


私も嬉しくなりますの。」


  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る