情報処理4レポート課題(9)
更新:2008年11月18日
-
符号なし整数を扱うunsigned int型をバイナリモードでファイルに書き込みした際に、
そのバイト列がどうなっているのかを確認します。
- 次の文章において、(a)から(h)までに適当な文言に置き換えて下さい。
次のプログラムはsizeof演算子を用いてchar型の大きさを画面表示します。
sizeof_char.c |
#include<stdio.h>
int main(void){
printf("%d\n", sizeof(char));
return 0;
}
|
実行結果からchar型の大きさは(a)バイトであることが分かります。
このプログラムを改訂すればunsigned int型の大きさを調べることもでき、
使っている計算機でのunsigned int型は(b)バイトです。
bfile1.cを書き換えてunsigned int型を何かバイナリモードでファイルに書き込むと
そのファイルの大きさは(c)バイトです。
unsigned int型で表すことのできる数値は0から4294967295までの(d)個です。
unsigned int型の大きさ(b)バイトは(e)ビットで、
unsigned int型が(f)の(g)乗個の数値を扱うことができることを意味します。
実際、(f)の(g)乗は(h)です。
- bfile1.cを次のように改訂して、符号なし整数を扱うunsigned int型をバイナリモードで書き込むようにし、下の表を埋めましょう。
a
の型をunsigned int
で宣言する。
a
への設定値の後ろにu
を付ける
(a
に123を設定したい場合にはa=123u;
とする)。
設定値 | バイナリコード | 備考 |
0u | |
1u | 0100 0000 |
2u | 0200 0000 |
10u | |
16u | |
255u | |
256u | |
65536u | |
16777215u | |
16777216u | |
4294967295u | |
4294967296u | | コンパイル時に警告が出ますが無視して実行してみて下さい。 |
- unsigned int型をバイナリモードでファイルに書き込みした際に、
そのバイト列がどうなっているのかを説明して下さい(ヒント:エンディアン)。
-
符号付き整数を扱うint型をバイナリモードでファイルに書き込みした際に、
そのバイト列がどうなっているのかを確認します。
- 次の文章において、(a)から(h)までに適当な文言に置き換えて下さい。
次のプログラムはsizeof演算子を用いてchar型の大きさを画面表示します。
sizeof_char.c |
#include<stdio.h>
int main(void){
printf("%d\n", sizeof(char));
return 0;
}
|
実行結果からchar型の大きさは(a)バイトであることが分かります。
このプログラムを改訂すればint型の大きさを調べることもでき、
使っている計算機でのint型は(b)バイトです。
bfile1.cを書き換えてint型を何かバイナリモードでファイルに書き込むと
そのファイルの大きさは(c)バイトです。
int型で表すことのできる数値は
-2147483648から2147483647までの(d)個です。
int型の大きさ(b)バイトは(e)ビットで、
int型が(f)の(g)乗個の数値を扱うことができることを意味します。
実際、(f)の(g)乗は(h)です。
- bfile1.cを次のように改訂して、符号付き整数を扱うint型をバイナリモードで書き込むようにし、下の表を埋めましょう。
a
の型をint
で宣言する。
a
に123を設定したい場合にはa=123;
とする。
設定値 | バイナリコード | 備考 |
0 | |
1 | |
2 | |
10 | |
16 | |
255 | |
256 | |
65536 | |
16777215 | |
16777216 | |
2147483647 | |
2147483648 | | コンパイル時にオプション「-std=c99」を付けて下さい。 |
-1 | |
-2 | |
-3 | |
-2147483646 | |
-2147483647 | |
-2147483648 | | コンパイル時にオプション「-std=c99」を付けて下さい。 |
-2147483649 | | コンパイル時に警告が出ますが無視して実行して下さい。 |
- int型をバイナリモードでファイルに書き込みした際に、
そのバイト列がどうなっているのかを説明して下さい(ヒント:エンディアンと2の補数表現)。
提出内容は問題本文・解答・考察・感想・作業時間です。
提出先アドレスを誤らないように気をつけて下さい。
Subjectは半角英数・アンダースコア・空白のみで構成し、
学番・氏名・第9回レポート課題であることが分かるように。
問題1-1については,11月18日24:00までに
受信履歴に掲載されるようにして下さい。
問題1-2,1-3,2-1,2-2,2-3については,11月24日24:00までに
受信履歴に掲載されるようにして下さい。
何かありましたら、
まで。