详解__int128,最大可用整数类型

这篇具有很好参考价值的文章主要介绍了详解__int128,最大可用整数类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:有些题目需要的数值刚好比 long long 的最大值大那么一点点,那么我们就可以用__int128 来搏一搏(并不是所有OJ都支持这个数据类型,受编译标准影响)

最大值是多少

int 最大值:2^(32-1)-1【受电脑字长影响】

long 最大值:2^(32-1)-1【不可改变】

冷知识:int 大小受电脑字长影响,早期电脑通常为16位,那么 int最大值 为:2^(16-1)-1;好一点的电脑为32位,那么 int最大值 为:2^(32-1)-1。

现在最差的电脑也有32位,一般为64位,绝大多数情况默认64位。

即目前 int最大值 皆为2^(32-1)-1,不会更大。

long long 最大值:2^(64-1)-1【不可改变】 

__int128 大小:2^(128-1)-1 【不可改变】

关于__int128:只能进行四则运算,不能用cin和cout来输出(本蒟蒻在此不做解释),不能用位运算来定义最大值。


定义最大值 / 最小值

C/C++标准中自带最大值和最小值宏定义(除了__int128,可能有,但是我没找到)

int 最大值宏 INT_MAX

long 最大值宏 LONG_MAX

long long 最大值宏 LONG_LONG_MAX

因为可以四则运算,可以 __int128 MAX = LONG_LONG_MAX * LONG_LONG_MAX 来定义最大值(2个LONG_LONG_MAX相乘最高位2^126,__int128最大值最高位2^127-1,不会溢出)

最小值就是最大值取个反,怕溢出的可以少算一点,比如 10 * LONG_LONG_MIN。


__int128的输入和输出

输入可以用string来读取,然后按位把值算进去

输出要手写,如下示例

#include <bits/stdc++.h>
using namespace std;
using maxType=__int128;

maxType a = (maxType)LONG_LONG_MAX*LONG_MAX;
void print(maxType x){
    stack<int>o;
    while(x)o.push(x%10),x/=10;
    while(!o.empty())cout<<o.top(),o.pop();
    cout<<endl;
}

int main(){
    cout<<"LONG_LONG_MAX:";
    print(LONG_LONG_MAX);
    cout<<"maxType:";
    print(a);
    return 0;
}

__int128,c++,数据结构,算法,__int128


可能会用到的该知识点的题:[传智杯 #5 初赛] E-梅莉的市场经济学 - 洛谷

参考博文:详解__int128 - FReQuenter - 博客园(更具体,包含什么时候可以使用__int128)(看什么看,不如直接搏一搏)文章来源地址https://www.toymoban.com/news/detail-617568.html

到了这里,关于详解__int128,最大可用整数类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【⑬MySQL | 数据类型(一)】简介 | 整数 | 浮点 | 定点 | 时间/日期类型

    ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL数据类型简介 | 整数 | 浮点 | 定点 | 时间/日期类型的分享 ✨ 0.数据类型简介 数据类型(data_type)是指系统中所允许的数据的类型。MySQL 数据类型定义了列中可以存储什么数据以及该数据怎样存储的规则。 数据库中的每个列都

    2024年02月11日
    浏览(37)
  • Redis高可用系列——Set类型底层详解

    Redis是一种高性能的键值型数据库,它支持多种数据结构,其中一种是set类型。set类型可以存储一个无序的、不重复的字符串集合,类似于Java中的HashSet或Python中的set。set类型的优点是可以对集合进行快速的添加、删除、判断是否存在等操作,以及对多个集合进行交集、并集、

    2024年02月03日
    浏览(40)
  • Kotlin浮点数Float整数Int乘*除/精度损失

    Kotlin浮点数Float整数Int乘*除/精度损失     0.85 0 0.85 2 2.5 8.5         Java小数点数字和百分号数字之间的转换_将浮点型转为百分比 java-CSDN博客 文章浏览阅读5.7k次,点赞3次,收藏5次。Java小数点数字和百分号数字之间的转换小数点数字和百分号(百分比)数字之间的转换在证

    2024年01月21日
    浏览(61)
  • 【算法与数据结构】343、LeetCode整数拆分

    所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。    思路分析 :博主做这道题的时候一直在思考,如何找到 k k k 个正整数, k k k 究竟为多少合适。从数学的逻辑上来说,将 n n n 均分为 k k k 个数之后, k k k 个数的乘积为最大(类似于相同周长

    2024年01月17日
    浏览(51)
  • C++:整数(short ,int,long,long long)表示范围

    C++用short、int、long 、long long来表示整数的整形,同一整形也分为有符号(signed)和无符号(unsigned)两种。数据长度与操作系统和编译器的位数有关,其能够表示的范围也有所不同。接下来本文将用代码的形式展示不同数据类型能表示的数据范围。 注释:climits 头文件包含了

    2023年04月08日
    浏览(40)
  • C++中如何将string(字符串)转换为int(整数)

    C++ 编程语言有一些内置数据类型: int , 对于整数(例如 10、150) double ,对于浮点数(例如 5.0、4.5) char ,对于单个字符(例如“D”、“!”) string ,对于字符序列(例如“Hello”) bool , 对于布尔值(true 或 false) C++ 是一种 强类型 编程语言,这意味着当您创建变量时,你

    2024年02月06日
    浏览(76)
  • 深度剖析数据在内存中的存储——int类型(整型)和float类型(浮点数)在内存中是如何存储和使用的?

    众所周知,C语言中有几种基本的内置数据类型: char - 字符数据类型 short - 短整型 int - 整型 long - 长整型 long long - 更长的整型 float - 单精度浮点数 double - 双精度浮点数 那为什么要设置这么多内置数据类型呢?类型的意义是什么? 本文将为大家介绍整型和浮点数在内存中的存

    2023年04月22日
    浏览(49)
  • 【解决方法】numpy.float64类型数据无法被解释为整数

    【解决方法】numpy.float64类型数据无法被解释为整数 在使用Python语言进行数据处理时,经常需要用到NumPy库中的各种数据类型和数学函数。其中,Numpy.float64是一种十分常见的数据类型。 然而,有时候我们会遇到这样的错误提示:【numpy.float64 object cannot be interpreted as an integer】

    2024年02月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包