【Java SE 11 Silver対策】いつの間にか忘れる基本データ型の範囲の計算
基本データ型の範囲について、普通に試験に出るんだよな~いつか覚えよう(1週間前の私)
そうだ、いい加減覚えよう
ということで、朝から少しまとめてみました。
よくわからない部分もあるけど、とりあえずこれだけ理解しておけば、Java Silverなら何とかなるハズ
■byte、short、int、long
byteの計算例
1bitは2通りの値を表現できるので、8bitは2の8乗(2^8) = 256通り
256通りを正負の数で表すと-128~128と思いきや、0で表現できる分、1を引いて-128~127
byte 8ビット -2の7乗~2の7乗-1 -128~127
short 16ビット -2の15乗~2の15乗-1 -32,768~32,767
int 32ビット -2の31乗~2の31乗-1 -2,147,483,648~2,147,483,647
long 64ビット -2の63乗~2の63乗-1 -9,223,372,036,854,775,808~9,223,372,036,854,775,807
※Windows10の電卓を起動して、関数電卓モードにして、累乗の計算ボタンで確認!
■char
char 16ビット 0~2の16乗-1 0~65535(10進数) \u0000~\uFFFF(16進数)
※なんで負の数はダメなんでしょうね・・・
■float、double
float 32ビット単精度浮動小数点数
正の値は 1.401298E-45 ~ 3.4028235E+38
負の値は -3.4028235E+38 ~ -1.401298E-45
double 64ビット倍精度浮動小数点数
正の値は 4.94065645841246544E-324 ~ 1.79769313486231570E+308
負の値は -1.79769313486231570E+308 ~ -4.94065645841246544E-324
そういえば、前から思ってたのですが、『E』ってなんなん?・・・せっかくだから調べてみるか。
・
・
・
・
・
あーEって10の乗数のことを指すんだ・・うわー知らなかった・・・いや忘れていただけだきっと!
例
1.2E2 → 1.2 * 10^2 → 120
2.34E-3 → 2.34 * 10^-3 → 0.00234
あと、浮動小数点の範囲って何で『正の値はXXXX~XXXX』って書き方なの?
カタカタカタ....
出力内容
fmin = 1.4E-45
fmax = 3.0E38
なんだそういうことか・・・小数点を考慮すると正の数の中でも表現できる範囲が絞られるのね
続く・・・!