如何将乌隆转换为长期,结果与我进入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
演示。