『Cパズルブック』(Alan R.Feuer, 1985)
[Mac M2 Pro 12CPU, MacOS Ventura 13.3.1, clang 14.0.3]
問1.4.5の解法は以下の通りです。
#include <stdio.h>
#define PRINT(int) printf("%d\n",int)
int main() {
int x , y;
x = 1; y = -1;
// 問1.4.5
PRINT( !x | x); // 1
// 論理否定演算子 !を優先
PRINT( (!x) | x); // 1
// 計算1: !x
// x = 0b00000001 = TRUE
// ! --------------
// FALSE or 0
// 計算2: (!x) | x
// Lt = 0b00000000 = FALSE
// x = 0b00000001 = TRUE
// | -------------
// TRUE or 1
// よってTRUE(10進数1)になる
return 0;
}
1
1