パンくず
概要
Javaの整数について
Javaの整数型
整数 | from | to | バイト数 |
---|---|---|---|
byte | -128 | 127 | 1 |
char | 0 | 63353 | 2 |
short | -32768 | 32767 | 2 |
int | -2147483648 | 2147483647 | 4 |
long | -9223372036854775808 | 9223372036854775807 | 8 |
コード上での確認
public class Perfect3_1_1 { /** * @param args */ public static void main(String[] args) { outputMinMax(Byte.class,Byte.MIN_VALUE ,Byte.MAX_VALUE); outputMinMax(Character.class,Integer.valueOf(Character.MIN_VALUE) ,Integer.valueOf(Character.MAX_VALUE)); outputMinMax(Short.class,Short.MIN_VALUE ,Short.MAX_VALUE); outputMinMax(Integer.class,Integer.MIN_VALUE ,Integer.MAX_VALUE); outputMinMax(Long.class,Long.MIN_VALUE ,Long.MAX_VALUE); } private static void outputMinMax(Class<?> clazz, Object min, Object max) { System.out.println(clazz.getName() + ":" + min + "〜" + max); } }
出力
java.lang.Byte:-128〜127 java.lang.Character:0〜65535 java.lang.Short:-32768〜32767 java.lang.Integer:-2147483648〜2147483647 java.lang.Long:-9223372036854775808〜9223372036854775807
使い分け
・byte、charはただの数値として扱うのではなく
バイト・文字として意味をみつ必要が有る際に使用する。
・shortは16bitでデータを保持することに意味をもたせたい場合のみ利用する。。
・その他の場合、基本はint。intでは収まらない数量の場合にlongを利用する。
桁あふれ
各整数型の最大値に1を足すと桁あふれをします。
サンプルコード
package perfect.number; public class Perfect3_1_1 { /** * @param args */ public static void main(String[] args) { byte i = Byte.MAX_VALUE; byte j = Byte.MIN_VALUE; System.out.println("i------------------------------"); System.out.println(i); System.out.println(Integer.toBinaryString(i)); i ++; System.out.println(i); System.out.println(Integer.toBinaryString(i)); System.out.println("j------------------------------"); System.out.println(j); System.out.println(Integer.toBinaryString(j)); j--; System.out.println(j); System.out.println(Integer.toBinaryString(j)); } }
出力
なぜ最大値が桁あふれするとマイナスになるのかは
ニの補数を知っているひとがBinaryを見れば明らか。
i------------------------------ 127 1111111 -128 11111111111111111111111110000000 j------------------------------ -128 11111111111111111111111110000000 127 1111111