首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >64位无符号到32位有符号

64位无符号到32位有符号
EN

Stack Overflow用户
提问于 2010-02-17 00:00:55
回答 2查看 1.8K关注 0票数 1

我需要将Java long数据类型(64位)数据转换为遗留的c++应用程序无符号整数(32位)数据类型。

不用担心数据丢失,因为数据是Linux时间戳,这将花费亿万年的时间才能达到无符号整数限制。

你知道要对这些数字应用什么变换吗?

提前感谢!

P.S. -数据类型示例:

Java - 1266336527340

C++ - 1266336583

它们都产生相同的日期和大约相同的时间(+/-一分钟)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-17 00:03:10

Java的Date.getTime返回来自纪元的毫秒数,而C++代码期望从纪元返回的秒数,因此您需要除以1000,然后截断:

代码语言:javascript
运行
复制
int timestampAsInt = (int)(timestampAsLong / 1000);

Java只有一个无符号的带符号整数,但这应该是可行的。

票数 3
EN

Stack Overflow用户

发布于 2010-02-17 00:47:54

代码语言:javascript
运行
复制
long javaTime = someDate.getTime();
int cTime = (int)((javaTime + 500) / 1000);

我更喜欢舍入而不是截断,但您必须决定哪一个适合您的业务规则。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2274193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档