我正在學習Java並且不太瞭解它。 什麼是大數據類型轉換成較小的例如公式:將字節轉換爲整數,從短到長...等
byte x=10;
long y=250;
x=(byte)y;
System.out.println(x);
編譯之後給我-6。 它有什麼用途?
我正在學習Java並且不太瞭解它。 什麼是大數據類型轉換成較小的例如公式:將字節轉換爲整數,從短到長...等
byte x=10;
long y=250;
x=(byte)y;
System.out.println(x);
編譯之後給我-6。 它有什麼用途?
您正在獲得-6,因爲您對一個字節做了很長的處理,並且long中的值對於該字節來說太大了。嘗試將一個字節轉換爲長整型!
一個字節的範圍從-128到127.長從-2^63到2^63-1。你已經因這種方式轉換而出現溢出。
一個字節只能存儲在但是因爲Java是最簽訂256個值,在Java存儲從-128到127
你的250值超過127,所以它的周圍以負數字節。
將較小的數據類型轉換爲較大的數據類型的公式是什麼?
我覺得你有你的變量向後
y=x;
你不需要投,因爲一個字節將自動展開成一個長
的byte
數據類型有符號1個字節的值可能會從-128到127的值。當您將250l
轉換爲byte
時,Java會查看二進制值11111010
並將其推到byte
中,但由於第一位是1,因此它被解釋爲負值。如果通過2的補碼運行11111010
,則得到110
或6,因此11111010
爲-6。
簡短的回答:將較大的數據類型轉換爲較小的數據類型會給您帶來難以置信的結果。不要做重大錯誤檢查。