簡體   English   中英

在Java中將負整數類型轉換為long類型時會發生什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM