迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

在 C++ 中使用 128 位整数

作者:迹忆客 最近更新:2023/09/03 浏览次数:

在本文中,我们将讨论 C++ 中的 128 位整数。 我们还将了解为什么需要它以及 C++ 中可能的替代方案。


在 C++ 中使用 128 位整数

我们有多种选择来处理 C++ 中的整数。 从int数据类型开始,有64位的long、long int、long long int,我们可以存储的最大正数是9223372036854775807(十六进制7FFFFFFFFFFFFFFF)。

考虑十六进制数 7; 接下来,我们将有 8,即二进制 1000,这意味着符号位打开。 最后,我们有从 -1 到 -9223372036854775808 的负整数。9223372036854775807 是一个足够大的数字,足以处理许多存储加算术运算的要求。

128 位整数及其在 C++ 中的替代方案的重要性

现在,如果您需要更大的整数,问题是,我们要对这些整数执行算术运算吗? 如果答案是肯定的,您可能需要比 128 位更多的存储空间。

两个大整数相加或相乘的结果可能需要更多位。 因此,在这种情况下,实现大整数可能会对您有所帮助。

最后,如果您只需要一个 128 位整数用于存储,一种解决方案是创建两个 64 位整数的结构,或者您可以采用 8 个元素的 int 数组或 16 个元素的 char 数组。

然而,GCC 确实为 128 位整数提供了一种特定的数据类型,即 int128_t; 在支持的编译器上,您可以检查大小:

int128_t var;
cout << sizeof(var) << '\n';

输出将为 16,这意味着 16x8=128 位。

然而,它支持特定的处理器,能够容纳 128 位; 否则,当您尝试存储大整数时,编译器会生成以下警告之一:

 warning: overflow in implicit constant conversion
 warning: integer constant is too large for its type

讨论的结论是精确决定在最坏情况下需要多少位。

此外,您只想存储数据,还是想执行算术运算? 那么,如果您想执行算术运算,大整数实现就是您的解决方案。

对于大整数实现,您甚至不必担心 500 或 5000 位。

如果您只想进行存储,则可以使用其他解决方案。 使用两个 64 位数据成员的结构,或使用 int 数据类型或 char 数据类型的数组。

上一篇:C++ 井字棋游戏

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

C++ 井字棋游戏

发布时间:2023/09/02 浏览次数:107 分类:C++

本文将讨论使用 C++ 中的条件语句和循环创建 tic tac toe 游戏。C++ 井字棋游戏

C++ 中的默认构造函数和 default 关键字

发布时间:2023/09/02 浏览次数:127 分类:C++

本文讨论 C++ 中的默认构造函数以及新引入的关键字 default。首先,让我们了解一下C++中的默认构造函数。 默认构造函数是一种特殊的构造函数,它没有参数,用于为类的数据成员设置默认值。

C++ 中的空构造函数

发布时间:2023/09/02 浏览次数:165 分类:C++

C++ 中的空构造函数是一种不执行任何操作的特殊类型构造函数。 编译器知道没有代码可以执行,因此不会为构造函数生成任何可执行代码。

C++ 中的结构体构造函数

发布时间:2023/09/02 浏览次数:74 分类:C++

这篇文章将讨论 struct 的使用以及使用 C++ 添加构造函数。C++结构体简介 struct 代表结构,是组合了一些基本类型变量的用户定义数据类型。 这些变量混合起来形成一个新的单元。

单链表的 C++ 复制构造函数

发布时间:2023/08/31 浏览次数:59 分类:C++

本文将首先讨论链表数据结构的概念以及使用它的合适场景。 然后,我们将讨论使用 C++ 的单链表和单链表的复制构造函数的紧凑实现。

C++ 二叉搜索树析构函数

发布时间:2023/08/31 浏览次数:161 分类:C++

本文将讨论使用 C++ 中的 delete 关键字为二叉搜索树创建析构函数。C++ 二叉搜索树析构函数

C++ 中负数的模数

发布时间:2023/08/31 浏览次数:121 分类:C++

在本文中,我们将发现余数和模数之间的差异。 我们将了解 % 运算符的基础知识。稍后,我们将了解 % 运算符在 Python 和 C++ 中的行为方式。 最后,我们将通过讨论在 C++ 中实现模数功能的几种

C++ 中最快的排序算法

发布时间:2023/08/31 浏览次数:150 分类:C++

本文将解释哪种排序算法在什么条件下表现最好。 条件包括数据结构的类型、排序数据的大小、数据排列和数据元素的范围。

将 DLL 反编译为 C++ 源代码

发布时间:2023/08/31 浏览次数:198 分类:C++

本文讨论我们可以用来将 DLL 反编译为 C++ 源代码的工具。反编译器简介 反编译器是一种逆向工程工具。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便