次へ: 「1.2 ioctlを使ったプログラム」の参考文献
上へ: 情報システム実験(16)
戻る: 課題6
- ioctlのコマンド番号は、1から順に小さな番号を選ぶという単純な
方法が使えない。なぜなのかをL.D.D.3の
6.1.1 ioctlコマンドの選び方を参考にして説明しなさい。
- 次の仕様で、絶対値(符合無し)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
平成19年1月6日