![](/img/trans.png)
[英]Long type cast error when reading Integer field from MongoDB in Java
[英]what happens when a negative integer is type cast to long in java?
int i = 0;
long ll = 0L;
i = -1 - 2; // -3
i = (int) -1 - 2; // -3
ll = (long) - (int) -1 - 2;// -1
i = (int) +(long) -(int) -1 - 2;//-1
ll = (long) +(int) -1 - 2; // -3
在上面的程序中就行了
ll = (long) - (int) -1-2;
ll
值為-1
。 僅通過類型轉換,其值如何變為-1
? 不應該是3或-3嗎?
i = (int) +(long) -(int) -1 - 2;
一元運算符將首先被評估,然后是二進制,因為一元運算符的優先級高於二元運算符。
所以-(int) -1
將首先被求值,它將變為+1
那么+(long)+1
將為+1
然后(int)+1
將被評估,因此它將變為+1
那么+1-2
將被評估為-1
因此您得到-1
。 其他語句將執行相同的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.