繁体   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