基本型と演算 - 基本型について
明解Java入門の第5章 基本型と演算が終わりましたー♪
Javaには大きくわけて基本型と参照型の2つがあり、
この章ではそのうちの基本型とそれに関する演算について学びました。
というわけで、まずは基本型についてまとめたいと思います。
基本型も2つに分けられ、数値型と論理型があります。
数値型
数値型はさらに整数型と浮動小数点型にわかれます。
整数型
型名 | 範囲 | ビット数 |
char | 0 〜 65535 | 16 |
byte | -128 〜 127 | 8 |
short | -32768 〜 32767 | 16 |
int | -2147483648 〜 2147483647 |
32 |
long | -9223372036854775808 〜 9223372036854775807 |
64 |
0〜9の数字で表現される数
-
- 8進整数リテラル
0〜7の数字で表現される数
頭に0を付けて表記
-
- 16進整数リテラル
0〜9の数字とA〜Fのアルファベットで表現される数
頭に0xまたは0Xを付けて表記
どの整数リテラルにも整数接頭語と呼ばれる「l」または「L」を付けlong型とする事ができ、
ない場合は基本的にint型と扱いとなります。
なお、一般的には見た目で区別しやすい「L」が使われる。
- 整数の内部
数字などは人にわかりやすいように表現したもので、
コンピュータのメモリ上では0または1の値をもつビットの集まりで表現されます。
そして、整数の内部は正負の符号を表すビットが最上位にあり、
以下の残りのビットで整数の値が表現されます。
例えば、8ビットのbyte型は符号ビットを除いた7ビットで値が表現される事になります。
-
- 負の値
0以上の非負の値は通常通りの2進表現となるのですが、
負の値は2の補数で表せられます。
2の補数とは正の値の全ビットを反転させ、1を加えたものの事です。
例として、
正の値 | 反転 | 1を加える | ||
01010101 | → | 10101010 | → | 10101011 |
浮動小数点型
浮動小数点型は整数型と違い精度があり、
精度以上の値は四捨五入されたりと誤差がでます。
型 | 範囲 | 精度 | ビット数 |
float | ±3.40282347E+38 〜 ±1.40239846E-45 |
約6〜7桁 | 32 |
double | ±1.79769313486231507E+378 〜 ±4.94065645841246544E-324 |
約15桁 | 64 |
また浮動小数点型はIEEE754形式で表現されます。
例えば、 210.1234 は 2.101234E2 と表現され、
Eは10のべき乗ということを表し、
2.101234 を 仮数 と呼び、
Eの後ろにある 2 を 指数 と呼び乗数を表します。
10進数字+小数点+10進数字と表記し、整数部または小数部を省略した表記も可能です。
ただし、整数部のみの場合は小数点または浮動小数点接尾語を付けないと整数とした扱われます。
.5 , 10. , .5f , 1D , 1.23E5 ← OK 10 ← NG(int型の整数リテラルとなる)
頭に0xまたは0Xを付け、16進数字+小数点+16進数字と表記し、注意点は10進と同じです。
ただし、指数表記する場合はEではなくPとなります。
どの浮動小数点リテラルにも整数リテラルと同じく浮動小数点接尾語と呼ばれる接尾語があり、
float型を表す「f」または「F」と、double型を表す「d」または「D」が2種類があります。
なお、省略した場合はdouble型とみなされます。
- 浮動小数点の内部
基本的には整数と同じくビットの集まりで表現されますが、
整数と違い 符号ビット+指数部ビット+仮数ビット の構成で表現されます。
指数・仮数のビット数は型によって異なり、下記の通りとなっています。
型名 | 全体 | 符号 | 指数 | 仮数 |
float | 32 | 1 | 8 | 23 |
double | 64 | 1 | 11 | 52 |
論理型
論理値を表す型でboolean型と呼び、
値は進を表す true と、偽を表す false のいずれかとなります。
- 論理値リテラル
値と同じく、
真なら true と、
偽なら false と表記します。
- 演算での扱い
文字列との演算では"true"または"false"の文字列に変換されます。
以上が基本型についてのまとめとなります。
残りの演算については次でということでw
んー、わかりやすさの点では今のままがいいのかも知れないけど、
説明する為に書き方をどうするか考えて、そこに時間がかかり過ぎてるのがあるなぁ。
このままだと書くことに時間がかかり過ぎて勉強が進まないので、
もっと簡潔に後から確認する時に必要な情報だけな感じを目指そう。