次のプログラムは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 | コンパイル時に警告が出ますが無視して実行して下さい。 |