[C言語] Cパズルブック 1.4 ビット演算子 

『Cパズルブック』(Alan R.Feuer, 1985)
[Mac M2 Pro 12CPU, MacOS Ventura 13.3.1, clang 14.0.3]

昨年2022年12月以来のCパズルブックです。

コードと出力は以下の通りです。

次回以降、各行について詳説します。

#include <stdio.h>
#define PRINT(int) printf("%d\n",int)

int main() {
    int x , y, z, a;
    
    // 先頭に0を付けると8進数になる
    x = 03; y = 02; z = 01; a = 010;

    printf("前半\n");

    PRINT( x | y & z);   // 3
    PRINT( x | y & ~ z); // 3
    PRINT( x ^ y & ~ z); // 1
    PRINT( x & y && z);  // 1

    // 追加
    PRINT( ~ z);         //-2
    PRINT(a);            // 8 8進数になっているか確認

    printf("後半\n");

    x = 1; y = -1;
    PRINT( ! x | x);     // 1
    PRINT( ~ x | x);     //-1
    PRINT( x ^ x);       // 0
    x <<= 3; PRINT(x);   // 8
    y <<= 3; PRINT(y);   //-8
    y >>= 3; PRINT(y);   //-1

    return 0;
}
前半
3
3
1
1
-2
8
後半
1
-1
0
8
-8
-1