投射数字和日期

时间:2017-02-16 21:59:38

标签: c# casting operators

我是Bitwise Shift Operators的新手。

ulong unitDate = (((ulong)885478688974) << 32) + (ulong)20170111;
uint low = (uint)(unitDate & (ulong)uint.MaxValue);
uint high = (uint)(unitDate >> 32);

在Low变量中,我得到的data =20170111是正确的。

在高变量中,我得到的值为715425998,这是不正确的。我应该得到值885478688974

我尝试过:

使用下面的代码,我得到了低和高变量的精确值。如何处理大于4294967295的数据?

ulong unitDate = (((ulong)4294967295) << 32) + (ulong)20170111;
uint low = (uint)(unitDate & (ulong)uint.MaxValue);
uint high = (uint)(unitDate >> 32);

0 个答案:

没有答案