論理積(&)
Aが真で、Bが偽の時、AかつB (A&B) は真か偽か。
という論理演算をプログラムで行います。
論理積は両方のビットが真のときのみ、結果が真となる。
C言語では、0は偽、1は真なので、
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
となる。
という論理演算をプログラムで行います。
論理積は両方のビットが真のときのみ、結果が真となる。
C言語では、0は偽、1は真なので、
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
となる。
#include <iostream> #include <fstream> using namespace std; /* コンパイルできないときは上の3行を #include <iostream.h> #include <fstream.h> に変えてみてください。 */ int main(){ cout << "a:真 b:真 c:偽 d:偽" << endl; bool a,b,c,d,ans; /* bool型の変数 a,b,c,d,ans bool型とは、0(false)、1(true)が入るデータ型のこと。 int型も使用できる。(メモリー使用量がその分増える) double型、float型を使って論理演算しようとすると、コンパイルエラーになる。*/ a = true; b = true; c = false; d = false; cout << "0は偽、1は真です。" << endl; cout << endl; ans = a & b; cout << "a & b = " << ans << endl; ans = a & c; cout << "a & c = " << ans << endl; ans = d & b; cout << "d & b = " << ans << endl; ans = c & d; cout << "c & d = " << ans << endl; return 0; }
出力結果
a:真 b:真 c:偽 d:偽 0は偽、1は真です。 a & b = 1 a & c = 0 d & b = 0 c & d = 0
論理和(or)
Aが真で、Bが偽の時、AまたはB (A | B) は真か偽か。
という論理演算を行います。
論理和はどちらかのビットが真のとき、結果が真となる。
C言語では、0は偽、1は真なので、
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
となる。
論理和はどちらかのビットが真のとき、結果が真となる。
C言語では、0は偽、1は真なので、
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
となる。
#include <iostream> #include <fstream> using namespace std; /* コンパイルできないときは上の3行を #include <iostream.h> #include <fstream.h> に変えてみてください。 */ int main(){ cout << "a:真 b:真 c:偽 d:偽" << endl; bool a,b,c,d,ans; /* bool型の変数 a,b,c,d,ans bool型とは、0(false)、1(true)が入るデータ型のこと。 int型も使用できる。(メモリー使用量がその分増える) double型、float型を使って論理演算しようとすると、コンパイルエラーになる。*/ a = true; b = true; c = false; d = false; cout << "0は偽、1は真です。" << endl; cout << endl; ans = a | b; cout << "a | b = " << ans << endl; ans = a | c; cout << "a | c = " << ans << endl; ans = d | b; cout << "d | b = " << ans << endl; ans = c | d; cout << "c | d = " << ans << endl; return 0; }
出力結果
a:真 b:真 c:偽 d:偽 0は偽、1は真です。 a | b = 1 a | c = 1 d | b = 1 c | d = 0