データの型 内部表現
コンピュータ内部では、あらゆる情報は「0」と「1」の組み合わせで表されます。
1個の「0」又は「1」で2通りの情報が表現出来ますが、2個有れば、
の4通り(2*2通り)が表現出来ます。
整数は桁(ビット)を増やして行く事で、大きなデータを扱える様になります。
此の様な表現を2進数と言います。
2進数では、桁が大きくなるに連れて人間には解り難くなって終う為、便宜上、下の表の様に4つを1まとまりにした16進数で書き表します。
1個の「0」又は「1」を1ビット(bit」と言います。
此を8個並べた単位を1バイト(byte)と言います。
つまり、「1byte=8bit」です。 2進数 内部表現表
| 10進数 |
内部表現 |
16進数 |
| 0 |
0000 0000 |
0 |
| 1 |
0000 0001 |
1 |
| 2 |
0000 0010 |
2 |
| 3 |
0000 0011 |
3 |
| 4 |
0000 0100 |
4 |
| 5 |
0000 0101 |
5 |
| 6 |
0000 0110 |
6 |
| 7 |
0000 0111 |
7 |
| 8 |
0000 1000 |
8 |
| 9 |
0000 1001 |
9 |
| 10 |
0000 1010 |
A |
| 11 |
0000 1011 |
B |
| 12 |
0000 1100 |
C |
| 13 |
0000 1101 |
D |
| 14 |
0000 1110 |
E |
| 15 |
0000 1111 |
F |
| 16 |
0001 0000 |
10 |
| 17 |
0001 0001 |
11 | 一方、文字も「0」と「1」の組み合わせで表します。
企画に依り、次のページの表の様に決まっている文字コードで表します。 文字コード表
| 文字 |
内部表現 |
16進数 |
10進数 |
| '0' |
0011 0000 |
30 |
48 |
| '1' |
0011 0001 |
31 |
49 |
| '2' |
0011 0010 |
32 |
50 |
| '3' |
0011 0011 |
33 |
51 |
| '4' |
0011 0100 |
34 |
52 |
| '5' |
0011 0101 |
35 |
53 |
| '6' |
0011 0110 |
36 |
54 |
| '7' |
0011 0111 |
37 |
55 |
| '8' |
0011 1000 |
38 |
56 |
| '9' |
0011 1001 |
39 |
57 |
| 'A' |
0100 0001 |
41 |
65 |
| 'B' |
0100 0010 |
42 |
66 |
| 'C' |
0100 0011 |
43 |
67 |
| 'D' |
0100 0100 |
44 |
68 |
| 'E' |
0100 0101 |
45 |
69 |
| 'F' |
0100 0110 |
46 |
70 |
| : |
: |
: |
: | 例えば、内部表現で「0100 0001」が記録されていたとします。
此の数字を文字と判断した場合は、文字コード表から「A」で有る事が解りますが、しかし整数だと判断した場合は、10進数では「65」だと言う事になります。
つまり、同じ内部表現でも其れを数値と見るか、文字と見るかに依って異なる意味になって終うのです。
其の為、予め「此は文字です」「此は整数値です」と言う事を明らかにして措かなければなりません。
此をデータの型と言います。 16進数では、1桁で16通りの数値を表しますが、「9」より大きい数字は、数字が足りないので、アルファベットのA〜Fを使います。
Javaで扱う型
Javaでは、全てのデータは「型」に分類して扱います。
下記の表にJavaで扱う「型」をまとめました。
Javaで扱う型
| 分類 |
型名 |
サイズ |
説明 |
| 文字型 |
char |
16bit |
文字 |
| 整数型 |
int |
32bit |
整数 |
| long |
64bit |
長い整数 |
| short |
16bit |
短い整数 |
| 浮動小数点型 |
double |
64bit |
小数点の付いた実数(高精度) |
| float |
32bit |
小数点の付いた実数 |
| 論理値型 |
boolean |
8bit |
「真」か「偽」の何れか |
| バイト型 |
byte |
8bit |
1byteのデータ | Javaでの実数は「1.5*0.1*0.1」の様に小数点を動かして表現するので、浮動小数点型と呼びます。
リテラル値
書かれた侭の文字を値として扱う直接の値をリテラル値と言います。
リテラル値
| 型 |
リテラル値 |
解説 |
| char |
'A' |
1文字を「'」で囲んで表す
Javaでは、全角も半角も同様に扱える |
| 'あ' |
| int |
10 |
小数点の付かない数字だけで構成 |
| double |
10.0 |
小数点が付くと浮動小数点数に |
| Boolean |
true |
データは此のどちらかのみ |
| false |
文字の拡張表記
通常の「文字」では表現出来ない文字(例えば「'」は、1文字を表す記号として働いて終う為、文字として「'」表せません)を表現する為に、「\」と他の文字を組み合わせて2つで1文字を表します。
此の様な表記を拡張表記(エスケープシーケンス)と言います。
主な物は下の表の通りです。
拡張表記表
| 拡張表記 |
意味 |
| \u |
以下が「Unicode」の値で有る事を示す |
| \b |
バックスペース |
| \t |
タブ |
| \n |
改行 |
| \r |
リターンキー |
| \" |
文字「"」 |
| \' |
文字「'」 |
| \\ |
文字「\」 | 戻る |