簡體   English   中英

使用64位jdk時的整數范圍

[英]Integer range when using 64bit jdk

據我所知,32位和64位兩個整數之間的區別如下:32位范圍-2,147,483,648到2,147,483,647 64位范圍:-9,223,372,036,854,775,808到+9,223,372,036,854,775,807

我使用的是64位jdk,我通過打印以下內容來驗證它:System.out.println(“JVM Bit size:”+ System.getProperty(“sun.arch.data.model”));

JVM位大小:64

當我嘗試初始化一個數字大於10個字母的新Integer變量時,我得到一個編譯錯誤。 這是為什么? 它看起來像64位更大

示例(在netbeans上運行):int x = 12345678910; =>錯誤:整數太大

Java中int的大小完全獨立於JDK的32位或64位。 它總是4個字節= 32位= -2,147,483,648到2,147,483,647。

如果需要64位整數,請使用long ,即64位= 8字節。

與其他語言不同,Java的數字基元類型總是大小相同,無論平台如何(32位或64位,LE或BE); 它們都是大端和是1個字節長為byte ,長2個字節用於shortchar ,長為4個字節int和8個字節長為long

如果不是這樣的話,罐子不能跨平台移動......

您最好的資源是JLS

整數類型是byte,short,int和long,其值分別為8位,16位,32位和64位二進制補碼整數,以及char,其值為16位無符號整數代表UTF-16代碼單元

4.2.1。 積分類型和值

整數類型的值是以下范圍內的整數:

  1. 對於字節,從-128到127(含)

  2. 簡而言之,從-32768到32767,包括在內

  3. 對於int,從-2147483648到2147483647,包括在內

  4. 很長一段時間,從-9223372036854775808到9223372036854775807,包括

  5. 對於char,從'\\ u0000'到'\\ uffff',包括0到65535

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM