C#日期类型转换与C 相同



如何将乌隆转换为长期,结果与我进入C 相同的结果。

C

unsigned long ul = 3633091313;
long l = (long)ul;
l is -661875983

c#

ulong ul = 3633091313;
long l = (long)ul;
l is 3633091313

c 的 long通常是32位数据类型。看起来在您的系统中,它没有足够的位来表示3633091313,因此结果为负。此行为在C (相关Q& a(中不确定。

在C#中对应于转换为int

UInt64 ul = 3633091313UL;
Int32 l = (int)ul;
Console.WriteLine(l); // prints -661875983

演示。

最新更新