如何从int获得多长时间

时间:2014-03-10 12:51:47

标签: c++ int long-integer

如何获得long的{​​{1}}值?例如,如何获得-127的长值?

3 个答案:

答案 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();