Java @ mock

long

最終更新:

Bot(ページ名リンク)

- view
管理者のみ編集可

long

Javaにおいてlongはプリミティブ型の1つです。
longはメモリ領域を64ビット確保します。
longは符号付き整数を扱うので、2の63乗(9223372036854775808)より、値の範囲は-9223372036854775808~9223372036854775807となります。
10桁以上の数値を扱う場合longを使います。
数値リテラルのデフォルトはint型のため、longのデータにはlまたはLを指定しなくてはいけません。


long 使用例 1

LongSample1.java
class LongSample1 {
	
	public static void main([[String]][] args)  {
		
		long longMax = 9223372036854775807L;
		long longMin = -9223372036854775808L;
		
		System.out.println("longMax:" + longMax);
		System.out.println("longMin:" + longMin);
	}
}

実行結果
C:\java>javac LongSample1.java

C:\java>java LongSample1
longMax:9223372036854775807
longMin:-9223372036854775808


long 値範囲を超えた場合 1

LongSample2.java
class LongSample2 {
	
	public static void main(String[] args)  {
		
		long longMax = 9223372036854775808L;
		long longMin = -9223372036854775809L;
		
		System.out.println("longMax:" + longMax);
		System.out.println("longMin:" + longMin);
	}
}

コンパイル結果
C:\java>javac LongSample2.java
LongSample2.java:5: 整数 9223372036854775808 が大き過ぎます。
                long longMax = 9223372036854775808L;
                               ^
LongSample2.java:6: 整数 -9223372036854775809 が大き過ぎます。
                long longMin = -9223372036854775809L;
                                ^
エラー 2 個

以上のようにコンパイルエラーが起こります。


long 値範囲を超えた場合 2

LongSample3.java
class LongSample {
	
	public static void main(String[] args)  {
		
		long longMax = 9223372036854775807L;
		long longMin = -9223372036854775808L;
		
		System.out.println("longMax - longMin:" + (longMax - longMin));
	}
}

実行結果
C:\java>javac LongSample.java

C:\java>java LongSample
longMax - longMin:-1

上記プログラムは本来なら9223372036854775807-(-9223372036854775808)で
longの値範囲を超えてしまいエラーになりそうですが、longの値は循環するそうです。
循環するので上記計算は
9223372036854775807-(-9223372036854775808)
                   ↓
9223372036854775807+9223372036854775808
                   ↓ 9223372036854775808はlong型の範囲を超えているので超えた分が循環し-9223372036854775808になる
9223372036854775807-9223372036854775808
                   ↓
                   -1
となることがわかります。


ウィキ募集バナー