導航:首頁 > 編程語言 > java長整形

java長整形

發布時間:2024-11-08 01:23:49

java語言有幾種數據類型怎樣申明和賦值

一、基本數據類型
整型:byte、short、int、long (在計算機中以二進制補碼格式存儲)

浮點型:float、double (在計算機中以IEEE754格式存儲)

字元型:char (在計算機中以unicode碼格式存儲)

布爾型:boolean (只有true和false兩個值)

二、 1.長整型:long

定義:long a=100;int b=a; (編譯出錯)

給a重新賦值:long a=2147483648; (編譯出錯)

定義:long a=2147483648L;(正確,說明此時可以是long型的取值范圍)

說明在long型的數據後不加L/l時,數據仍為long型,但其取值范圍卻是int型的取值范圍;數據後加L/l時,取值范圍才是long型的取值范圍。

2.浮點型:long

定義:float a=19; 輸出a時為19.0

定義:float a=19.1; (編譯出錯)

定義:float a=19.1f; (正確)

說明在 float型的數據後不加F/f,則數據不能有小數位,但輸出時,能夠輸出一位小數;若在float型的數據後加上F/f,則數據可以有小數位;

三、類型轉換(註:boolean型不會發生類型轉換,基本類型和復合類型不能相互轉換)

1.自動轉換

1)賦值轉換:用於短位元組的數據類型轉換成長位元組的數據類型(byte型的數據不能轉換成char型,short型和char型數據也不能相互轉換)

2)單目運算符提升

++、——運算符不會自動提升,+(正)、-(負)會將byte、short、char型的數據自動轉換成int型的數據

3)雙目運算符提升

如果有一個操作數是double型的,則把另一個轉換成double型;否則如果有一個操作數是float型的,則把另一個轉換成float型;否則 如果有一個操作數是long型的,則把另一個轉換成long型;否則兩個操作數都轉換成int型。

4)三目運算符<op1> ? <op2> : <op3>其中op1必須是boolean型的,而op2和op3兩操作數必須是能夠自動轉換成相同類型的數據,op2和op3會自動提升為兩操作數中位元組較長的一個,並且結果為提升後的類型。

如:byte a1=20;

short a2=10;

boolean b=true;

short c = b ?

a1 : a2;

結果為short型的數據c

2.強制轉換

例子:

int a;

byte b=(byte)a;

定義:a=-126;

(分析:int形的數據有4個位元組,而byte形的數據只有1個位元組,所以只取int型數據的最後一個位元組)

a的原碼: 10000000,00000000,00000000,01111110

補碼: 11111111,11111111,11111111,10000010

法一:r=(10000010)=130 (此時將 10000010 看成是純的二進制數去計算,而不考慮它的符號位); byte型數據范圍〔-128,127〕,由於 r>127,所以 r=r-M (若整型數據值域[-L,R],則M=L+R+1),如果r還不在byte型數據的取值范圍內,則繼續 r=r-M 直至r在其取值范圍內,取得r後,即為byte型的 b .此處r=-126,所以輸出b為-126.

法二:直接將int型數據的最後一個位元組看成是byte型數據的補碼形式,在將補碼轉換成原碼,即得到 b

四、邏輯運算符

1.&&和|| (&&的優先順序要高於||的)

特點:只要左操作數已經得出整個表達式的值,就不再計算右操作數的之值,左右操作數必須為boolean型的。

例子:

boolean test1= ++x==-1 && ++x==1 || ++x=2;
boolean test2= ++y==-1 || ++y==1 && ++y=2;
System.out.println(x+" "+test1);
System.out.println(y+" "+test2);
結果:1 false
2 true

2.&和| (邏輯位運算符)

特點:先把兩個操作數的值計算出來,然後再進行邏輯運算

int x=-1,y=-1;
boolean test1= ++x==-1 & ++x==1 | ++x=2;
boolean test2= ++y==-1 | ++y==1 & ++y=2;
System.out.println(x+" "+test1);
System.out.println(y+" "+test2);
結果: 2 false
2 true

五、移位運算

<< (左移)高位丟失、低位以0填充

>> (右移) 低位丟失、高位以符號位填充

>>> (無符號位右移) 低位丟失、高位以0填充

此運算符不會對左右兩操作數作算術提升,但會對左操作數進行單獨提升,若為byte、short、char、int型,則得到結果為int型,若為long型,則結果為long型,但左右操作數均不能為浮點型,否則出錯。

當左操作數為int型時,右操作數的低5位才有用,這樣可以防止移位超過int型所具有的位數,當左操作數為long型時,右操作數的低6位才有用。

例子:

int a=-2;
short b=-10;
int c=a>>b;

b的補碼:11111111,11111111,11111111,11110110

取b的最後5位, r=(10110)=22;

a的補碼:11111111,11111111,11111111,11111110

將a向右移動22位,再在高位補上1,得到 11111111,11111111,11111111,11111111 ,轉換成原碼得到 c=-1

六、賦值運算

1.簡單賦值運算

表達式: <變數>=<表達式>

左操作數可以事先沒有賦值

表達式的類型必須和變數的類型相同,或能賦值轉換成變數的類型,

2.組合賦值運算

表達式:<變數> op= <表達式>

int a=10;

double b=23.3;

a*=b;

左操作數事先一定要賦值

左邊的類型和右邊的類型不一定要相同,此處a*b得到的是double型的,組合運算符會自動把double型的值轉換成int型的值存入變數a中。

㈡ Java中的8種數據類型詳解

Java數據類型包括基本數據類型和引用數據類型。基本數據類型主要有:整型、長整型、雙精度浮點型、浮點型、短整型、字元型、位元組型和布爾型。

整型:大小為4個位元組,取值范圍為-2147483648到2147483647,對應的包裝類為Integer。如果賦值超出此范圍,會報錯。

長整型:大小為8個位元組,取值范圍為-9223372036854775808到9223372036854775807,對應的包裝類為Long。定義時需注意默認數字是int型,需明確指定。

雙精度浮點型:大小為8個位元組,取值范圍廣泛,適用於大范圍數值運算。對應的包裝類為Double。注意事項是盡量使用double類型以避免精度損失。

浮點型:大小為4個位元組,遵循IEEE 754標准,精度范圍較小。對應的包裝類為Float。建議在工程中使用double類型。

短整型:大小為2個位元組,取值范圍為-32768到32767,對應的包裝類為Short。

字元型:大小為2個位元組,採用Unicode編碼,可賦值給漢字。在編譯時若出現編碼格式不對的情況,需在javac編譯時加上特定參數解決。

位元組型:大小為1個位元組,取值范圍為-128到127,對應的包裝類為Byte。超出范圍會報錯,可通過強制類型轉換賦值。

布爾型:大小無明確規定,有的認為一個位元組,有的認為一個比特位,取值只有true或false,對應的包裝類為Boolean。注意事項是不能與其他基本類型相互轉換,且0不表示false,非零不表示true。

注意事項包括類型之間的轉換規則、范圍限制以及編碼兼容性等問題。正確理解並應用這些數據類型是Java編程的基礎。

㈢ java中long是什麼意思

是整型的一種,而且是表示範圍最大的那種。
java裡面整型一共4種,byte, short, int, long,按位元組長度算分別是1, 2, 4, 8個位元組。

㈣ java中長整型和整型的區別

相同點:
兩者都是整數
不同點:
長整形取值范圍比整型取值范圍大。
長整形最大值:9223372036854775807
整型最大值:2147483647

㈤ java中長整型定義

java整型有四種分貝是:byte(1位元組)、short(2位元組)、int(4位元組)、long(8位元組)

0x100080000000超出范圍,其實不是long不能保存這么大,而是這個數是個int型數。它超出的其實是int的范圍(The literal 0x100080000000 of type int is out of range),在整數賦值時。

可以將賦值語言修改如下,指定它的類型為long型就可以了:

long y=0x100080000000l;//

(5)java長整形擴展閱讀

java整形與長整型之間的轉換可以藉助Long類或字串

1、藉助Long類:

int new_a = new Long(a).intValue();

2、藉助字串:

int new_a = Integer.parseInt(String.valueOf(y));

java整形、長整型、浮點型 邊界值:

int型邊界最大值:Integer.MAX_VALUE

int型邊界最小值:Integer.MIN_VALUE

long型邊界最大值:Long.MAX_VALUE

long型邊界最小值:Long.MIN_VALUE

float型邊界最大值:Float.MAX_VALUE

float型邊界最小值:Float.MIN_VALUE


閱讀全文

與java長整形相關的資料

熱點內容
空氣壓縮機到壓力漏氣 瀏覽:462
c51多文件編譯中全局變數怎麼聲明 瀏覽:562
程序員能力強的一般去啥公司 瀏覽:543
格力空調壓縮機質保 瀏覽:103
手機app漲跌加速圖在哪裡找 瀏覽:754
伺服器發票如何識別 瀏覽:698
自動語音識別技術演算法 瀏覽:943
nes模擬器下載哪個文件夾 瀏覽:135
我的世界如何在別人伺服器復制指令 瀏覽:598
建立個文件夾就帶個鎖頭 瀏覽:658
android獲取手機硬體 瀏覽:138
華為伺服器ge是什麼意思 瀏覽:842
微鉑加密 瀏覽:177
劍橋發加密郵件 瀏覽:708
linux查看文檔命令 瀏覽:299
雲伺服器java插件 瀏覽:182
安卓手機怎麼記錄吸煙 瀏覽:484
如何找郵件伺服器 瀏覽:750
內核編譯到一半提示空間不足 瀏覽:873
新形勢下結演算法 瀏覽:571