【发布时间】:2013-09-22 00:01:43
【问题描述】:
我正在构建一个 DLL,它将由 C++ 使用 COM 使用。
请让我知道 C++ 64 位 unsigned long long 的 C# 等价物是什么。
在 C# 中会是 ulong 类型吗? 请确认。
谢谢, 加根
【问题讨论】:
-
ulong是64-bit unsigned long int。
标签: c# c++ long-integer unsigned ulong
我正在构建一个 DLL,它将由 C++ 使用 COM 使用。
请让我知道 C++ 64 位 unsigned long long 的 C# 等价物是什么。
在 C# 中会是 ulong 类型吗? 请确认。
谢谢, 加根
【问题讨论】:
ulong 是64-bit unsigned long int。
标签: c# c++ long-integer unsigned ulong
【讨论】:
ulong 是 System.UInt64 的缩写,它是(并且永远是)64 位无符号整数。
对于超出 ulong 的任何内容,您不妨使用 C# BigInteger Structure。
【讨论】:
BigInteger 数据类型,则无法找到大于 20 的数字的阶乘。感谢分享。
在 C++ 中,每个整数类型在 64 位机器上运行时,其大小都会增加一倍,而不是在 32 位机器上运行。
因此,声明 C# int 或 long 可能等同于 C++ int 或 long 是不正确的。
相反,在 C# 中有一个名为 IntPtr 的类型,它是专门为 P/Invoke 制作的。实际上,它的大小从 32 位机器上的 4 个字节更改为 64 位机器上的 8 个字节,因此这与 C++ unsigned long 或 Windows ULONG 正确等效。
【讨论】:
从 C++11 开始,您可以使用这些:
int8_tint16_tint32_tint64_tuint8_tuint16_tuint32_tuint64_t无论如何,它们的大小都保证保持不变。
【讨论】: