整數型別(轉)
整數型別(轉)[@more@]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 不會內部把那些型別提升到整型。記住,型別決定行為,而不是大小(惟一的例外是陣列,位元組型的資料保證每個陣列元素只佔用一個位元組,短整型使用 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 不會內部把那些型別提升到整型。記住,型別決定行為,而不是大小(惟一的例外是陣列,位元組型的資料保證每個陣列元素只佔用一個位元組,短整型使用 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.
很清楚,計算結果超出了整型數的表達範圍。
整數型別的長度(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 不會內部把那些型別提升到整型。記住,型別決定行為,而不是大小(惟一的例外是陣列,位元組型的資料保證每個陣列元素只佔用一個位元組,短整型使用 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 不會內部把那些型別提升到整型。記住,型別決定行為,而不是大小(惟一的例外是陣列,位元組型的資料保證每個陣列元素只佔用一個位元組,短整型使用 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.
很清楚,計算結果超出了整型數的表達範圍。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-958164/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql 資料型別之整數型別MySQL 資料型別
- 4-2/3整數型別型別
- 變數型別轉換變數型別
- excel 整數匯入資料庫轉成varchar型別後多了小數點Excel資料庫型別
- mysql整數資料型別深入解析MySql資料型別
- Pytorch變數型別轉換PyTorch變數型別
- JavaScript 字串轉換數值型別JavaScript字串型別
- 翻轉整數
- 反轉整數
- 高效能Mysql(第3版)_資料型別的選擇_整數型別MySql資料型別
- js小數轉整數JS
- Javascript基礎:變數型別轉換JavaScript變數型別
- 整數反轉(ReverseInteger)
- 二分法(整數型別)的基本框架型別框架
- 羅馬數字轉整數
- 資料型別,型別轉換資料型別
- 1.金額數字轉字元型別字元型別
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- C#快速入門教程(9)——浮點數、Decimal型別和數值型別轉換C#Decimal型別
- 型別轉換型別
- 醫療行業整體數字化轉型解決方案(數商雲)行業
- double型別中可精確表達的最大正整數型別
- BigDecimal轉為String型別、int型別Decimal型別
- LeetCode反轉整數(Python)LeetCodePython
- LeetCode(7)--.反轉整數LeetCode
- 7.整數反轉
- 字串轉換整數(atoi)字串
- 翻轉一個整數
- 轉換成為整數
- SpringBoot 通過Converter轉化 date型別引數Spring Boot型別
- Java資料型別及型別轉換Java資料型別
- 06 Windows批處理之整數和浮點資料型別Windows資料型別
- Roman to Integer 羅馬數字轉整數
- LeetCode 13[羅馬數字轉整數]LeetCode
- 13. 羅馬數字轉整數
- js型別轉換JS型別
- 型別轉換(cast)型別AST
- Convert型別轉換型別
- Kotlin 資料型別詳解:數字、字元、布林值與型別轉換指南Kotlin資料型別字元