次へ:
「1.2 ioctlを使ったプログラム」の参考文献
上へ:
情報システム実験(11)
戻る:
課題6
レポート
ioctl
のコマンド番号は、1から順に小さな番号を選ぶという単純な 方法が使えない。なぜなのかをL.D.D.の
5.1.1 ioctlコマンドの選び方
を参考して説明しなさい。
以下の2と3と4と5のプログラムは、情報システム実験の期末試験問題とする。レポートの必要はない。11月21日(月)の試験時間中に614で結果を画面提示すること。
次の仕様で、絶対値(符合無し)8ビットデータの右シフトを確認できるC 言語プログラムを作成しなさい。
scanf
関数で8ビットデータを
unsigned char
変数に入力する こと。
scanf
関数で入力するデータは16進数で
unsigned char
変数に 入力すること。
16進数で入力したデータをビット列で表示すること。
たとえば、
85
を入力したら、
1000 0101
と表示する。
また、
ff
を入力したら、
1111 1111
と表示する。
データは何回でも繰り返し入力できるようにすること。
そして、特定のコードまたはデータが入力されたとき終了すること。
たとえば、
EOF(Control-d)
が入力されたら終了する。
入力されたデータを任意のビット数だけ右シフトできるようにすること。
右シフトするビット数は
scanf
関数で入力すること。
右シフトするビット数のデータは10進数で入力すること。
右シフトした結果をビット列で表示すること。
たとえば、
1000 0101
を2ビット右シフトしたばあいは、
0010 0001
のように表示すること。
右シフトするビット数は何回でも入力出来るようにすること。
たとえば、
1111 1111
を2ビット右シフトして
0011 1111
、さらに 3ビット右シフトして
0000 0111
、なおも2ビット右シフトして
0000 0001
というように表示できるようにすること。
右シフトのビット数入力の繰り返しは0を入力したときに終了すること。
全体の流れは、
unsigned char
変数への入力を繰り返すループの中 に右シフトビット数の入力を繰り返すループが含むようにすること。
次の仕様で、絶対値(符合無し)8ビットデータの左シフトを確認できるC 言語プログラムを作成しなさい。
基本的な仕様は右シフトのものと同じである。
1111 1111
を2ビット左シフトしたら
1111 1100
となる。
次の仕様で、符合付き(2の補数)8ビットデータの右シフトを確認できるC 言語プログラムを作成しなさい。
scanf
関数で8ビットデータを
signed char
変数に入力する こと。
scanf
関数で入力するデータは16進数で
signed char
変数に 入力すること。
16進数で入力したデータをビット列で表示すること。
たとえば、
85
を入力したら、
1000 0101
と表示する。
また、
ff
を入力したら、
1111 1111
と表示する。
データは何回でも繰り返し入力できるようにすること。
そして、特定のコードまたはデータが入力されたとき終了すること。
たとえば、
EOF(Control-d)
が入力されたら終了する。
入力されたデータを任意のビット数だけ右シフトできるようにすること。
右シフトするビット数は
scanf
関数で入力すること。
右シフトするビット数のデータは10進数で入力すること。
右シフトした結果をビット列で表示すること。
たとえば、
1000 0101
を2ビット右シフトしたばあいは、
1110 0001
のように表示すること。
右シフトするビット数は何回でも入力出来るようにすること。
たとえば、
1111 1111
を2ビット右シフトして
1111 1111
、さらに 3ビット右シフトして
1111 1111
、なおも2ビット右シフトして
1111 1111
というように表示できるようにすること。
右シフトのビット数入力の繰り返しは0を入力したときに終了すること。
全体の流れは、
signed char
変数への入力を繰り返すループの中 に右シフトビット数の入力を繰り返すループが含むようにすること。
次の仕様で、符合付き(2の補数)8ビットデータの左シフトを確認できるC 言語プログラムを作成しなさい。
基本的な仕様は右シフトのものと同じである。
1111 1111
を2ビット左シフトしたら
1111 1100
となる。
MANOME Yoichi 平成18年12月25日