2014-10-30 65 views

回答

1

您正在獲得-6,因爲您對一個字節做了很長的處理,並且long中的值對於該字節來說太大了。嘗試將一個字節轉換爲長整型!

一個字節的範圍從-128到127.長從-2^63到2^63-1。你已經因這種方式轉換而出現溢出。

0

一個字節只能存儲在但是因爲Java是最簽訂256個值,在Java存儲從-128到127

你的250值超過127,所以它的周圍以負數字節。

將較小的數據類型轉換爲較大的數據類型的公式是什麼?

我覺得你有你的變量向後

y=x; 

你不需要投,因爲一個字節將自動展開成一個長

0

byte數據類型有符號1個字節的值可能會從-128到127的值。當您將250l轉換爲byte時,Java會查看二進制值11111010並將其推到byte中,但由於第一位是1,因此它被解釋爲負值。如果通過2的補碼運行11111010,則得到110或6,因此11111010爲-6。

簡短的回答:將較大的數據類型轉換爲較小的數據類型會給您帶來難以置信的結果。不要做重大錯誤檢查。