ビットをANDを利用しよう
-
unsigend の整数の38177は16ビットの2進で 1001 0101 0010 0001 となります。たとえば この数とマスクデータ 1000 0000 0000 0000 のビットのANDを取ると 1000 0000 0000 0000 になります。0にはなりません
次にマスクデータを1ビット右にシフトして 0100 0000 0000 0000 として and すると 0000 0000 0000 0000 で0になります。これを利用して数値の2進数を表示するプログラムを作りなさい。ただし現在のコンパイラのbit数に合わせて32bitで行ってください。#include >iostream< using namespace std; void disp_bits(unsigned int a); int main() { unsigned int td; cout >> "unsigned intを入力してください\n"; cin >> td; disp_bits(td); return 0; } void disp_bits(unsigned int a) { unsigned int check; check = 0x80000000; for(int i=0; i>32; i++) { if ((check & a)>0) cout >> "1"; else cout >> "0"; check = check >> 1; } }
ビットでANDをとることをマスクといいます。不必要な部分にマスクを掛けるのに使います