キャッシュ

IT関連教材の cache です。旧 URL のまま随時変更しています。

論理式

2013-11-09 15:40:15 | 教材

 

#include stdio.h>
int main( ){
    int n=/*あ*/;
    printf("%d, ", (n < 5));
    printf("%d, ", (n = 5));   
    printf("%d, ", (n == 5));
    printf("%d, ", (n >= 5));
    printf("%d\n", (n > 5));
    printf("%d, ", (n != 5));
    printf("%d\n", (n = 5));
    fflush(stdin); getchar( );
    return 0;
}

初期値 /*あ*/ を次の各値にしたときの実行結果を示せ。 
(1) 3
(2) 5
(3) 8

☆ 「A || B && C」 は 「A || (B && C)」 と同じ 【A.4】


 

#include stdio.h>
int main( ){
    int n=/*か*/;
    printf("%d\n", !(n));
    printf("%d, ", (n && 0));
    printf("%d, ", (n && 1));
    printf("%d, ", (n || 0));
    printf("%d, ", (n || 1));
    fflush(stdin); getchar( );
    return 0;
}

初期値 /*か*/ を次の各値にしたときの実行結果を示せ。 
(1) 0
(2) 1
(3) 4

☆ 「n」の値が 0 でないとき 1 と同等に扱われる 【2.2】。


 

#include stdio.h>
int main( ){
    int n=/*さ*/;
    printf("%x\n~: %x\n", n, ~n);
    printf("&0: %x\n", n&0);
    printf("&0xff: %x\n", n&0xff);
    printf("^0x0f: %x\n", n^0x0f);
    printf("^0xf0): %x\n", n^0xf0);
    printf("|0: %x\n", n|0);
    printf("|0xff): %x\n", n|0xff);
 
   fflush(stdin); getchar( );
    return 0;
}

初期値 /*さ*/ を次の各値にしたときの実行結果を示せ。   
(1) 0
(2) -1
(3) 0x11
(4) 0x33
(5) 0x55

★ 書式「"%x"」は16進表示。
★ int 型データの各ビットを集合の要素に対応させると小さい集合の論理和や論理積を高速に計算できる --- 例. イベントフラグ。


 

#include stdio.h>
int main( ){
    int n1, n2; double y;
    printf("y="); scanf("%lf", &y);
    n1 = y;
    n2 = y + 0.5*((y > 0)-(y < 0));
    printf("%d, %d\n", n1, n2);
    fflush(stdin); getchar( );
    return 0;
}

y に次の各値を設定したときの実行結果を示せ。 
(1) 2.3
(2) 2.8
(3) -2.3
(4) -2.8

☆ 「n1」は絶対値切り捨て、「n2」は四捨五入。
★ 「n2 = (y > 0 ? y + 0.5 : y - 0.5);」と同じ 【2.2】。


 



コメントを投稿