【问题标题】:Convert size_t to integer将 size_t 转换为整数
【发布时间】:2020-06-21 20:28:36
【问题描述】:

我正在使用大小适中的整数,这些整数的大小使得它们的对数将是一个 int。我正在使用带有 C 编程语言的 GNU 多精度库 (GMP)。

我想知道是否存在将数据类型 size_t 转换为 int 的函数。

【问题讨论】:

  • (int)size_t_variable
  • 转换? size_t 是整数类型。
  • 您需要将其转换为@pmg 提到的。请记住,在许多系统上sizeof(size_t) > sizeof(int) 是无符号整数类型
  • 我发誓我使用上面的搜索栏搜索了“size_t”这个词。当它显示不相关的编程语言的结果时,我退出了。

标签: c gmp


【解决方案1】:

来源:src size_t 是依赖于实现的,它的大小可能会有所不同。您可以尝试将其类型转换为 int ,但这可能无法像您已经间接提到的那样存储。 但是你仍然可以使用字符串

#include <iostream>
#include <string>
using namespace std;
int main()
{
    size_t x = 123456789012345678LL;
    std::cout<<(x)<<" "<<int(x)<<" "<<to_string(x);

然后使用:

    mpz_init(n);
    mpz_set_ui(n,0);
    flag = mpz_set_str(n,x, 10);
    assert (flag == 0);
    printf ("n = ");
    mpz_out_str(stdout,10,n);
    printf ("\n");
}

(在此问题之前从未阅读过有关 GMP 的内容,但方法应该是正确的。希望对您有所帮助:-)

【讨论】:

  • 这是一道 C 题。你不能使用coutto_string
  • 我知道我提到的方法很重要......
  • 您可以编写一个简单的函数来转换为字符串并打印...只需了解单词“to_string”的含义,他已经在使用 GMP
猜你喜欢
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-06
  • 2014-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多