gpt4 book ai didi

c++ - 用于 utopic 应用程序的 16,32 等字节变量

转载 作者:行者123 更新时间:2023-11-28 03:17:09 26 4
gpt4 key购买 nike

以下几行是我真正“无用”的 C++ 程序的一部分...由于“无符号long long”变量,建议用于 15 位精度的数字...!!!

就是这样....我需要一个 16 字节或更多的变量...这不是由:

-__int128(Visual Studio 2010 将字母变为蓝色但出现红线,调试时出现错误:“此体系结构不支持关键字”32 位系统)

-Boost::Projects...在我用谷歌搜索之后,因为我是一个新手,当我遇到专业网站时“我迷失在宇宙中”(boost::bigint...存在吗? ?? 不是反问)

(-多次打字当然)

int main()
{
unsigned long long result;
int i;
const int max=128;

for(i=0, result=1ll; i <= max; ++i,result *=2 )
cout<<setw(3)<< i <<setw(32)<< result <<endl;

system("pause");
return 0;
}

最佳答案

您可以在 C++ 中找到实现 operator<<() 的“bigint”实现输出到 ostream,但是如果您只想将 2 的幂打印到控制台或文本字符串,并且您不需要实际执行“bigint”数学运算(除了计算那些 2 的幂),有一种更简单的方法,可以让您得到 2 的幂,几乎可以达到您想要的大小,并有耐心浏览:

将每个十进制数字(数字 0 到 9)存储为单独的实体,可能作为字符或整数数组或在数字的 std::list 中。使用 std::list 的优点是,随着数字变大,您可以轻松地在前面添加新的数字位置,但是通过将数字以相反的顺序存储在 std::vector 中,您几乎可以轻松地做到这一点(当然要打印它们,您必须从后到前迭代以按正确顺序打印数字)。

一旦弄清楚要如何存储数字,将数字加倍的算法如下:遍历大数的数字,将每个数字加倍(当然是 mod 10)并携带任何溢出(即 bool 值这表示如果它的结果​​......在 %10 之前......大于 9)从那个数字到下一个数字。在下一个数字上,先将其加倍,如果前一个数字溢出,则加 1。如果该结果溢出,则将溢出继续到下一个数字并继续到所有数字的末尾。在数字的末尾,如果将最后一个数字加倍并添加前一个数字的任何溢出导致最后一个数字溢出,则添加一个新数字并将其设置为 1。然后打印结果数字列表。

使用此算法,您可以打印任意大的 2 的幂。当然,从不能在 C++ 数学运算中直接使用它们的意义上说,它们不是“数字”。

关于c++ - 用于 utopic 应用程序的 16,32 等字节变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16491486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com