如何获得long
的{{1}}值?例如,如何获得-127的长值?
答案 0 :(得分:0)
如果您正在讨论具有前导1的负数的位表示,那么您可以使用:
int intValue = -127;
long longValue;
if((0x80 << (sizeof(int)-1)) & intValue)
{
longValue = (0x80 << ((sizeof(long)-1)*8)) | ((0x80 << ((sizeof(int)-1)*8)) ^ intValue);
}else{
longValue = intValue
}
我希望我没有弄乱括号。
答案 1 :(得分:0)
int foo = -127;
long bar = foo;
assert(bar == foo); // We simply state that the values are the same
或者:
// Decent compilers will optimize this away in release build.
long long_from_int(int x) { return x; }
int foo = -127;
assert(long_from_int(foo) == -127L);
那就是它。生活并不比那更容易:)
答案 2 :(得分:-2)
使用:Long.valueOf(int)
或者,如果您有'整数',您也可以这样做:
整数x = - 127; long y = x.longValue();