演習14-1

【問1】

任意の 2つの unsigned int型で表すことのできる整数値を入力し、 論理積(AND)、論理和(OR)、排他的論理和(XOR)を求めて表示せよ。

ただし、表示はわかりやすいように16進数で行うこと。

実行結果例

0〜65535の整数を2つ入力
65530
65535
65530(0xfffa) AND 65535(0xffff) = 0xfffa
65530(0xfffa) OR  65535(0xffff) = 0xffff
65530(0xfffa) XOR 65535(0xffff) = 0x5

 緑字はキーボードからの入力

【問2】

次の手順で、「Ctrl+Z」」(UNIXの環境では「Ctrl+D」)が入力されるまで、任意の unsigned int型で表すことのできる整数値を入力し、 そのビットパターンを表示するプログラムを作成しなさい。

(1)

main()関数で次の処理を行う。

  1. CTRL+Zが入力されるまで、任意のunsigned int型で表すことのできる10進整数を入力する。入力した整数を引数にして、ビットパターン表示関数 bit_disp( ) を呼ぶ。
  2. CTRL+Zが入力されたら、プログラムを終了する。

(2)

bit_disp()関数で次の処理を行う。

(関数の仕様)

関数 I/F
void bit_disp( unsigned int dt );
入力

dt … 任意の 符号無し10進整数

出力

なし

処理

unsigned int ビットサイズ分ループする。

最上位ビットから順にビットパターン(0 or 1)を表示する。

実行結果例

0〜65535の整数を入力(終了条件:Ctrl+Z)
0
0 ---> 0000000000000000
32767
0x7fff ---> 0111111111111111
65535
0xffff ---> 1111111111111111
^Z


 緑字はキーボードからの入力

解答例戻る


banner初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved