C++中64位无符号长整型的C#等价类型是什么?

20
我正在构建一个DLL,将被C++使用COM调用。 请告知 C++ 64位中的 unsigned long long 在C#中的相等类型是什么。 它会是C#中的ulong类型吗? 请确认。 谢谢, Gagan

ulong 是一个 64 位无符号长整型 - PiousVenom
4个回答

19

也许这可以帮助您:

  • ulong(64位无符号整数)
  • double(64位浮点数)。

这是否保证了所有时间的一致性(例如 Java 的 long 类型始终为 64 位)? - Bathsheba
9
什么?在C#中,“ulong”是System.UInt64的缩写,它始终代表64位无符号整数。 - dtb
1
@dtb:你是否看过任何官方文档对C# shorts有这样的保证? - Dzmitry Martavoi
4
http://msdn.microsoft.com/en-us/library/ya5y69ds.aspx http://msdn.microsoft.com/en-us/library/exx3b86w.aspx http://msdn.microsoft.com/en-us/library/vstudio/ms228593.aspx - dtb

3

1
计算大于20的阶乘需要使用BigInteger数据类型,感谢分享。 - RBT
不再是真的了。自从.NET Core 7.0以后,有比ulong更宽的System.Int128System.UInt128 - phuclv

1
在C++中,整数类型的大小取决于程序是在32位还是64位机器上运行,而C#整数类型是独立于平台的。因此,它们不可互操作。
相反,在C#中有IntPtr和UIntPtr类型,它们用于P/Invoke,并且在32位机器上的大小为4字节,在64位机器上的大小为8字节,这使它们分别等效于C++的signed long和unsigned long类型。

-7

2
你把问题反过来了。 - Gaspa79
错误的方向,即使想进入DLL也不是很具体。 - Jamie Nicholl-Shelley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接