整數類型

發表于:2007-07-14來源:作者:點擊數: 標簽:
Java 定義了4個整數類型:字節型(byte),短整型(short),整型(int),長整型(long )。這些都是有符號的值,正數或是負數。Java 不支持僅僅是正的無符號的整數。許多其他計算機語言,包括C/C++ ,支持有符號或無符號的整數。然而,Java 的設計者感到無
Java 定義了4個整數類型:字節型(byte),短整型(short),整型(int),長整型(long )。這些都是有符號的值,正數或是負數。Java 不支持僅僅是正的無符號的整數。許多其他計算機語言,包括C/C++ ,支持有符號或無符號的整數。然而,Java 的設計者感到無符號整數是不必要的。具體地說,他們感到無符號(unsigned )概念主要被用來指定高位(high-order bit )狀態,它定義了當int 表示一個數字時的符號。你將在第4章中看到,Java 對高位含義的管理是不同的,它通過增加一個專門的“無符號右移”運算符來管理高位。這樣,就不需要無符號整數了。

整數類型的長度(width )不應該被理解為它占用的存儲空間,而應該是該類變量和表達式的行為(behavior )。只要你對類型進行了說明,Java 的運行環境對該類的大小是沒有限制的。事實上,為了提高性能,至少字節型和短整型的存儲是32位(而非8位和16位),因為這是現在大多數計算機使用的字的大小。

這些整數類型的長度和變化范圍如表3-1 所示:

表3-1 整數的各種類型及特性

名稱 長度 數的范圍
長整型 64 –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
整型 32 –2,147,483,648 ~ 2,147,483,647
短整型 16 –32,768 ~ 32,767
字節型 8 –128~127

讓我們分別討論整數的每種類型。

3.3.1 字節型(byte)
最小的整數類型是字節型。它是有符號的8位類型,數的范圍是-128~127。當你從網絡或文件處理數據流的時候,字節類型的變量特別有用。當你處理可能與Java 的其他內置類型不直接兼容的未加工的二進制的數據時,它們也是有用的。

通過“byte ”這個關鍵字的使用來定義字節變量。例如,下面定義了2個變量,稱為b 和c:byte b,c;

3.3.2 短整型(short)
short是有符號的16位類型,數的范圍是 –32,768~32,767 。因為它被定義為高字節優先(稱為big-endian 格式),它可能是Java 中使用得最少的類型。這種類型主要適用于16位計算機,然而這種計算機現在已經很少見了。

下面是聲明Short變量的一些例子:

short s;
short t;

注意:“Endianness ”描述像short,int ,和 long 這些多字節數據類型是如何被存儲在存儲器中的。如果用2 個字節代表short ,那么哪個字節在前,是高字節位(最重要的字節)還是低字節位(最不重要的字節)?說一臺機器是big-endian,那意味著這個機器中最重要的字節在前,最不重要的字節在后。例如 SPARC 和PowerPC 的機器是 big-endian ,而Intel x86 系列是 little-endian 。

3.3.3 整型(int)
最常用的整數類型是int 。它是有符號的32位類型,數的范圍是-2,147,483,648~2,147,483,647 。int 類型的變量通常被用來控制循環及作數組的下標。任何時候你的整數表達式包含byte,short,int 及字面量數字,在進行計算以前,所有表達式的類型被提升(promoted )到整型。

整型是最通用并且有效的類型,當你想要計數用作或數組下標或進行整數計算時,你應該使用整型。似乎使用字節型和短整型可以節約空間,但是不能保證 Java 不會內部把那些類型提升到整型。記住,類型決定行為,而不是大?。ㄎ┮坏睦馐菙到M,字節型的數據保證每個數組元素只占用一個字節,短整型使用 2 個字節,整型將使用4個。)

3.3.4 長整型(long)
long 是有符號的64位類型,它對于那些整型不足以保存所要求的數值時是有用的。長整型數的范圍是相當大的。這使得大的、整個數字都被需要時,它是非常有用的。例如,下面的程序是計算光在一個指定的天數旅行的英里數。

// Compute distance light travels using long variables.
class Light {

public static void main(String args[]) {
int lightspeed;
long days;
long seconds;
long distance;

// approximate speed of light in miles per second

通過“byte ”這個關鍵字的使用來定義字節變量。例如,下面定義了2個變量,稱為b 和c:byte b,c;

3.3.2 短整型(short)
short是有符號的16位類型,數的范圍是 –32,768~32,767 。因為它被定義為高字節優先(稱為big-endian 格式),它可能是Java 中使用得最少的類型。這種類型主要適用于16位計算機,然而這種計算機現在已經很少見了。

下面是聲明Short變量的一些例子:

short s;
short t;

注意:“Endianness ”描述像short,int ,和 long 這些多字節數據類型是如何被存儲在存儲器中的。如果用2 個字節代表short ,那么哪個字節在前,是高字節位(最重要的字節)還是低字節位(最不重要的字節)?說一臺機器是big-endian,那意味著這個機器中最重要的字節在前,最不重要的字節在后。例如 SPARC 和PowerPC 的機器是 big-endian ,而Intel x86 系列是 little-endian 。

3.3.3 整型(int)
最常用的整數類型是int 。它是有符號的32位類型,數的范圍是-2,147,483,648~2,147,483,647 。int 類型的變量通常被用來控制循環及作數組的下標。任何時候你的整數表達式包含byte,short,int 及字面量數字,在進行計算以前,所有表達式的類型被提升(promoted )到整型。

整型是最通用并且有效的類型,當你想要計數用作或數組下標或進行整數計算時,你應該使用整型。似乎使用字節型和短整型可以節約空間,但是不能保證 Java 不會內部把那些類型提升到整型。記住,類型決定行為,而不是大?。ㄎ┮坏睦馐菙到M,字節型的數據保證每個數組元素只占用一個字節,短整型使用 2 個字節,整型將使用4個。)

3.3.4 長整型(long)
long 是有符號的64位類型,它對于那些整型不足以保存所要求的數值時是有用的。長整型數的范圍是相當大的。這使得大的、整個數字都被需要時,它是非常有用的。例如,下面的程序是計算光在一個指定的天數旅行的英里數。

// Compute distance light travels using long variables.
class Light {

public static void main(String args[]) {
int lightspeed;
long days;
long seconds;
long distance;

// approximate speed of light in miles per second
lightspeed = 186000;

days = 1000; // specify number of days here

seconds = days * 24 * 60 * 60; // convert to seconds

distance = lightspeed * seconds; // compute distance

System.out.print("In " + days);
System.out.print(" days light will travel about ");
System.out.println(distance + " miles.");

}
}

這個程序運行的結果如下:

In 1000 days light will travel about 16070400000000 miles.

很清楚,計算結果超出了整型數的表達范圍。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97