『Cパズルブック』(Alan R.Feuer, 1985)
[Mac M2 Pro 12CPU, MacOS Ventura 13.3.1, clang 14.0.3]
問1.4.1の解法は以下の通りです。
#include <stdio.h>
#define PRINT(int) printf("%d\n",int)
int main() {
int x , y, z;
// 先頭に0を付けると8進数になる
x = 03; y = 02; z = 01;
// 問1.4.1
PRINT( x | y & z); // 3
// ビットAND &を優先
PRINT( x | (y & z)); // 3
// 計算1: y & z
// y = 0b00000010
// z = 0b00000001
// & --------------
// 0b00000000
// 計算2: x | 00
// x = 0b00000011
// 00 = 0b00000000
// | --------------
// 0b00000011
// よって10進数3になる
return 0;
}
3
3