ビット演算(2) 複数ビットの論理和・論理積

論理積

2進数で11100011と00111001の論理積を求める。
1ビットずつ論理積を求める。
11100011
00111001
---------
00100001
#include <iostream>
#include <fstream>
using namespace std;

/*  コンパイルできないときは上の3行を
  #include <iostream.h>
  #include <fstream.h>
   に変えてみてください。  */
   
int main(){
    int a,b,ans;

    /* int型の変数 a,b,ans
    double型、float型を使って論理演算しようとすると、コンパイルエラーになる。*/
    
    a = 0xe3; //  11100011
    b = 0x39; // &00111001
	//    ---------
    ans = a & b; // 00100001
    cout << "a & b = 0x" << hex << ans << endl;
//  hexを上記のようにおくと、16進数で表示される。

 return 0;
}

出力結果
a & b = 0x21

論理和

2進数で11100011と00111001の論理和を求める。
1ビットずつ論理和を求める。
11100011
|00111001
---------
11111011
#include <iostream>
#include <fstream>
using namespace std;

/*  コンパイルできないときは上の3行を
  #include <iostream.h>
  #include <fstream.h>
   に変えてみてください。  */
   

int main(){
int a,b,ans;

/* int型の変数 a,b,ans
double型、float型を使って論理演算しようとすると、コンパイルエラーになる。*/

    a = 0xe3; //  11100011
    b = 0x39; // |00111001
	//    ---------
    ans = a | b; // 11111011
    cout << "a | b = 0x" << hex << ans << endl;
//  hexを上記のようにおくと、16進数で表示される。

 return 0;
}

出力結果
a | b = 0xfb