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