Gordon1 发表于 2024-2-25 15:47:27

long long

如果unsigned long long的范围不够了,还有办法吗

FishC 发表于 2024-2-25 15:47:40

如果`unsigned long long`的范围不够满足你的需求,还有一种更大的整数类型可以使用,那就是`__int128`。`__int128`是一个128位的整数类型,提供了更大的范围。

以下是一个简单的例子,演示了如何使用`__int128`类型:

#include <iostream>
using namespace std;

ostream& operator<<(ostream& os, __int128 num) {
    if (num == 0) {
      return os << "0";
    }

    string result = "";
    while (num > 0) {
      result = char(num % 10 + '0') + result;
      num /= 10;
    }

    return os << result;
}

int main() {
    __int128 bigNum = 1234567890123456789012345678901234567890;
    cout << "Big number: " << bigNum << endl;

    return 0;
}

在上面的代码中,我们首先定义了一个输出运算符重载函数,以便能够直接打印出`__int128`类型的数字。然后,我们声明并初始化了一个非常大的数`bigNum`,并将其输出到屏幕上。

请注意,`__int128`是GCC编译器特有的扩展类型,在某些其他编译器上可能无法使用。如果你使用的是其他编译器,可能会有不同的解决方案。在那种情况下,你可能需要考虑使用多个整数来表示超大的数字,然后自己实现加法、乘法等操作。

希望以上信息对你有帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: long long