次のプログラムはsizeof演算子を用いてchar型の大きさを画面表示します。
| sizeof_char.c |
|---|
#include<stdio.h>
int main(void){
printf("%d\n", sizeof(char));
return 0;
}
|
実行結果からchar型の大きさは1バイトであることが分かります。 このプログラムを改訂すればunsigned int型の大きさを調べることもでき、 使っている計算機でのunsigned int型は4バイトです。 bfile1.cを書き換えてunsigned int型を何かバイナリモードでファイルに書き込むと そのファイルの大きさは4バイトです。 unsigned int型で表すことのできる数値は0から4294967295までの4294967296個です。 unsigned int型の大きさ4バイトは32ビットで、 unsigned int型が2の32乗個の数値を扱うことができることを意味します。 実際、2の32乗は4294967296です。
aの型をunsigned intで宣言する。
aへの設定値の後ろにuを付ける
(aに123を設定したい場合にはa=123u;とする)。
| 設定値 | バイナリコード | 備考 |
|---|---|---|
| 0u | 0000 0000 | |
| 1u | 0100 0000 | |
| 2u | 0200 0000 | |
| 10u | 0a00 0000 | |
| 16u | 0f00 0000 | |
| 255u | ff00 0000 | |
| 256u | 0001 0000 | |
| 65536u | 0000 0100 | |
| 16777215u | ffff ff00 | |
| 16777216u | 0000 0001 | |
| 4294967295u | ffff ffff | |
| 4294967296u | 0000 0000 | コンパイル時に警告が出ますが無視して実行してみて下さい。 |
次のプログラムはsizeof演算子を用いてchar型の大きさを画面表示します。
| sizeof_char.c |
|---|
#include<stdio.h>
int main(void){
printf("%d\n", sizeof(char));
return 0;
}
|
実行結果からchar型の大きさは1バイトであることが分かります。 このプログラムを改訂すればint型の大きさを調べることもでき、 使っている計算機でのint型は4バイトです。 bfile1.cを書き換えてint型を何かバイナリモードでファイルに書き込むと そのファイルの大きさは4バイトです。 int型で表すことのできる数値は -2147483648から2147483647までの4294967296個です。 int型の大きさ4バイトは32ビットで、 int型が2の32乗個の数値を扱うことができることを意味します。 実際、2の32乗は4294967296です。
aの型をintで宣言する。
aに123を設定したい場合にはa=123;とする。
| 設定値 | バイナリコード | 備考 |
|---|---|---|
| 0 | 0000 0000 | |
| 1 | 0100 0000 | |
| 2 | 0200 0000 | |
| 10 | 0a00 0000 | |
| 16 | 1000 0000 | |
| 255 | ff00 0000 | |
| 256 | 0010 0000 | |
| 65536 | 0000 0100 | |
| 16777215 | ffff ff00 | |
| 16777216 | 0000 0001 | |
| 2147483647 | ffff ff7f | |
| 2147483648 | 0000 0080 | コンパイル時にオプション「-std=c99」を付けて下さい。 |
| -1 | ffff ffff | |
| -2 | ffff fffe | |
| -3 | ffff fffd | |
| -2147483646 | 2000 0080 | |
| -2147483647 | 1000 0080 | |
| -2147483648 | 0000 0080 | コンパイル時にオプション「-std=c99」を付けて下さい。 |
| -2147483649 | ffff ff7f | コンパイル時に警告が出ますが無視して実行して下さい。 |