我是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);