64位无符号32位带符号
-
20-09-2019 - |
题
我需要的Java数据类型长(64位)数据转换成传统的C ++程序无符号整型(32位)的数据类型。
有关的数据丢失为数据不用担心是Linux的时间戳,这将需要亿万打unsigned int的限制。
任何想法转化为适用于这些数字呢?
提前感谢!
P.S。 - 数据类型的示例:
爪哇 - 1266336527340
C ++ - 1266336583
他们都产生相同的日期,并且大约同时(+/-一分钟)。
解决方案
Java的 Date.getTime 返回从历元的毫秒强>数,而C ++代码期望的的秒强>从时元,所以需要通过1000到把数然后截断:
int timestampAsInt = (int)(timestampAsLong / 1000);
Java的只有一个符号整数无符号不,但这应该工作。
其他提示
long javaTime = someDate.getTime();
int cTime = (int)((javaTime + 500) / 1000);
我宁愿舍去了截断,但你必须决定哪些是适合您的业务规则。
不隶属于 StackOverflow