【问题标题】:C# equivalent of 64-bit unsigned long long in C++C# 相当于 C++ 中的 64 位 unsigned long long
【发布时间】:2013-09-22 00:01:43
【问题描述】:

我正在构建一个 DLL,它将由 C++ 使用 COM 使用。 请让我知道 C++ 64 位 unsigned long long 的 C# 等价物是什么。

在 C# 中会是 ulong 类型吗? 请确认。

谢谢, 加根

【问题讨论】:

标签: c# c++ long-integer unsigned ulong


【解决方案1】:

也许这会对你有所帮助:

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

【讨论】:

【解决方案2】:

对于超出 ulong 的任何内容,您不妨使用 C# BigInteger Structure

【讨论】:

  • 如果没有 BigInteger 数据类型,则无法找到大于 20 的数字的阶乘。感谢分享。
【解决方案3】:

在 C++ 中,每个整数类型在 64 位机器上运行时,其大小都会增加一倍,而不是在 32 位机器上运行。
因此,声明 C# intlong 可能等同于 C++ intlong 是不正确的。

相反,在 C# 中有一个名为 IntPtr 的类型,它是专门为 P/Invoke 制作的。实际上,它的大小从 32 位机器上的 4 个字节更改为 64 位机器上的 8 个字节,因此这与 C++ unsigned long 或 Windows ULONG 正确等效。

【讨论】:

    【解决方案4】:

    从 C++11 开始,您可以使用这些:

    • int8_t
    • int16_t
    • int32_t
    • int64_t
    • uint8_t
    • uint16_t
    • uint32_t
    • uint64_t

    无论如何,它们的大小都保证保持不变。

    http://en.cppreference.com/w/cpp/types/integer.

    【讨论】:

    • 你的问题倒过来了
    猜你喜欢
    • 2013-08-01
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多