探讨高精度问题:能否用__int128一统江湖?

【使用 __int128 处理超大整数计算】 lll x = 1;操作支持情况定义变量✅ 支持四则运算✅ 支持比较操作✅ 支持cin/cout支持❌ 不支持,需要自写GCC/Clang 支持✅ 支持MSVC 支持❌ 不支持。 阅读详情

Part1.

        在编程领域,处理大数运算一直是一个具有挑战性的问题。传统的数据类型如 int 和 long long 在表示大整数时存在精度限制,无法满足某些特定需求。然而,是否可以通过使用__int128类型来解决这一问题呢?

Part2.

         __int128,这个神秘的数据类型听起来就像是高精度问题的终极解决方案。它有着128位的宽度,相比于传统的整数类型,可以容纳更大的数值范围。

首先,我们来思考一下__int128的存在意义。它的设计初衷是为了在处理大整数时提供更高的精度和范围。但是,这是否意味着它可以解决所有的高精度问题呢?恐怕并非如此。

__int128的使用需要特定的编译器支持,而不是所有的编译器都提供对其完整的支持。这使得代码的移植性受到了限制。此外,__int128在内存占用方面也是一个巨头,它需要16个字节的存储空间,远超于普通的整数类型。这可能导致在处理大规模数据时的性能问题和资源浪费。

除了使用__int128之外,我们还可以利用现有的高精度库来解决大数运算的问题。这些库经过精心设计和优化,可以提供高效的大数运算功能。与__int128相比,这些库可能更具通用性和灵活性,可以在不同的环境中使用,并具备更好的性能表现。

Part3.

当然,本文不能仅止步于批评__int128。它毕竟是一个有趣的存在。对于那些钟情于编程戏谑的人来说,我们可以用__int128来吹嘘自己在编程界的威风。你可以想象,在面对那些吹捧自己程序的精度时,你自信满满地说:“Oh,请允许我用我的__int128高高在上。”或者,你可以对某个高精度问题说:“你以为你很大,让我来用我的__int128一次将你吃掉!”

结论: 在论述高精度问题时,__int128是一个有趣的存在。虽然它在一些特定情况下可以提供更高的精度和范围,但其局限性和可移植性使其不具备解决所有高精度问题的能力。与之相比,利用现有的高精度库可能更加实用和灵活。不过,无论是使用__int128还是其他解决方案,我们都应该根据特定的需求和情况来选择最适合的工具。

在编程领域,有时候我们也需要一些有趣的戏谑来轻松一下。__int128可以成为一个话题,让我们在讨论高精度问题时增添一些娱乐和幽默。

所以,最好还时怼对int_128 敬而远之吧(大佬们除外),高精度也不难,老老实实写吧(其实是我太菜了)。

        

__int128使用详解和整形输入输出的优化(比scanf和printf快) __int128,__uint_i28和read,write函数讲解 阅读详情

相关推荐

比long long还大的——__int128

众所周知,int变量的存值范围是:2^31∼2^31−1],大约是正负 2.1×10^9 之间long long变量的存值范围是:[−2^63~2^63-1,大约是正负 9.2×1018 之间如果整数都是非负数,我们可以考虑用变量来存值,它的存值范围是: [0∼2^64−1] ,如果整数还要大,通常我们是考虑用高精度算法。但是,高精度算法又臭又长,非必要应该没人想写。

2401_83430722的博客 1493

__int128的使用方法

_int128就是占用128字节的整数存储类型。由于是二进制,范围就是 -2^127~2^127-1,如果使用了,则范围变成 00 ~ 21282128,即约39位数,这在一定程度上可以替代高精度运算实现大数运算,而且操作难度更低,所以在数据范围不超过的情况下,都可以使用__int128。

qq_39720552的博客 1万+

Python量化交易实战:如何用vnpy+Tushare获取股票历史数据(附完整代码)

本文详细介绍了如何利用vn.py框架与Tushare数据接口,构建一个健壮的Python量化交易数据获取引擎。通过封装Tushare API,实现股票历史数据的自动化获取与格式转换,并适配vn.py的BarData结构,为策略回测与实盘交易提供稳定、高效的数据基础。文中提供了完整的代码实现,涵盖环境配置、核心封装逻辑及高级功能扩展。

cola5的博客 1219

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

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

qq_17807067的博客 1万+

操作系统原理:【优麒麟】linux内核添加系统调用

在底端添加如下代码。

Joyce_zz的博客 2709

Word毕业论文排版:图片和表格题注的终极指南(含自动编号技巧)

本文是Word毕业论文排版中图片和表格题注的终极指南,详细讲解了如何利用题注功能实现自动编号,告别繁琐易错的手动操作。核心内容包括创建定制标签、配置带章节的编号格式、插入交叉引用以及一键更新全文编号的技巧,旨在帮助学生构建自动化文档体系,提升排版效率和论文严谨性。

weixin_29211309的博客 1094

【超大数据】数字的拆分——int128数据类型的使用方法

__int128整数类型的使用,重载输入输出流的使用。

Ricky_One的博客 1629

专治疑难系列 - 解决打印机凭证冲突问题

一、问题描述 二、解决方法 三、问题已解决

Passerby_Wang的博客 2万+

关于 __int128

关于 __int128 众所周知: int是32位,范围大概为10^9 long long(g++编译器), __int64(用%I64d控制,用scanf,printf比较好),都是64位扩展,范围大概是10^19 关于两种扩展的区别,参照:https://blog.youkuaiyun.com/qq_31736627/article/details/52912691 __int128是128位,大概10^...

Nismilesucc的学习札记 3388

【OpenCV】复杂场景下的高精度圆检测实战(附完整代码)

本文针对OpenCV霍夫圆检测在复杂场景下易失效的问题,提出了一套基于轮廓分析的高精度圆检测实战方案。通过图像预处理、轮廓发现及多轮几何筛选(面积、周长、椭圆拟合、多边形逼近),有效排除噪声和类圆干扰物,显著提升复杂场景下的检测鲁棒性,并附完整可调参的Python代码实现。

weixin_29095587的博客 199

(8-5)图像特征提取:基于LoG、DoG 和DoH 的斑点检测器

然后,根据给定的参数(标准差、尺度因子),通过调用cv2.GaussianBlur函数创建了两个不同尺度的高斯滤波器,并对图像进行滤波操作。然后,通过遍历DoG滤波器的每个像素,检测局部极值点,并将其添加到关键点列表中。然后,通过遍历DoH滤波器的每个像素,检测局部极值点,并将其添加到关键点列表中。接下来,通过遍历滤波器的每个像素,检测局部极值点,并将其添加到关键点列表中。DoH是一种基于Hessian矩阵的特征检测方法,通过计算Hessian矩阵的行列式来检测图像中的斑点。:实现DoH斑点检测器。

码农三叔 1603

int128的实现(基本完成)

总所周知,我们这里的最高位的int的位数是64位(long long),最高表示的数是2^64-1(无符号),只有18,446,744,073,709,551,615大概10的20次方,有的时候是不够用的,用高精度数组的速度的效率又相对较慢,这时候就想到了int128了。至于为什么不让每种计算都支持int128嘛,因为懒得写了,还有乘法会爆int128、没必要,而且蓝桥杯要到了,我得加紧算法的学习了(这个东西花了我4天去改,虽然不是每一刻都在想,但是也挺搞事的)然后按照数学的计算,就可以设计出加减乘除了。

Fool256353的博客 2726

在 IW31 录入班次与当班负责人,并让 IW38 列表同步显示:基于 IWO10018 + IWOC0004 的一套可落地增强方案

摘要 本文详细介绍了在SAP PM模块中实现工厂设备维护订单增强的完整方案,重点解决两个核心需求:在订单创建时新增班次负责人和班次字段,并在订单列表中直接显示这些信息。文章从需求分析、技术设计到具体实现步骤进行了系统阐述。 关键实现步骤包括: 通过CI_AUFK结构扩展AUFK表,确保字段持久化存储 使用IWO10018增强在IW31/IW32/IW33事务中添加输入界面 通过IWOC0004增强在IW38订单列表中显示新增字段 采用优化的数据填充策略提升性能 该方案不仅满足业务需求,还考虑了用户体验和系统

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 174

vs2019中不支持__int128关键字的解决办法

vs2019中不支持__int128关键字的解决办法

天下月色共三分的博客 1922

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

三分模板+int128模板

while(l<r) { ll midl=l+(r-l)/3; ll midr=r-(r-l)/3; if(check(midl)<=check(midr)) r=midr-1; else l=midl+1; } #include <bits/stdc++.h> using namespace std; inline __int128 read() { __int128

我们仍未知道那天所看见的花的名字。 417

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

int128的使用

转自这里 输入输出模板 #include <iostream> using namespace std; typedef __int128_t int128; int128 read(){ int128 x=0;bool f=0;char c=getchar(); while (c<'0'||c>'9'){if (c=='-')f=1;c=getchar();} while (c>='0'&&c<='9'){x=(x<&

weixin_49865561的博客 2202

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

int_128(读写板子)

#include <bits/stdc++.h> using namespace std; inline __int128 read() { __int128 x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); } while(ch>='0'&&amp.

代码笔记本 676

C++ 关于int128在何种环境下能够使用

今天看到有int128这种神奇的大正数类型,“可能“让我们的大整数相加变得简单些,但是自己用gcc编译了一下,失败了。不死心VS2017也失败了,网上说,只有在某些情况能够使用。做了个测试,发现只有在Linux环境下能够使用。 下面是我搜集的资料和做的实验,记录一下: C99官方文档:(511页) J.5.6 Other arithmetic types Additio...

shadandeajian的博客 3万+

C/C++ __int128的使用

gcc是不支持__int128这种数据类型的,比如在codeblocks 16.01也是无法编译的,但是提交到大部分OJ上是可以编译且能用的。C/C++标准IO是不认识__int128这种数据类型的,因此要自己实现IO,其他的运算,与int没有什么不同。 参考来源 博客 https://blog.youkuaiyun.com/tianwei0822/article/details/80687466 ...

Authur_gyc 3万+

何为__int128

_int128是一种特定于某些编译器的 128 位整数类型,主要用于提升整数运算的精度。以下是关于__int128。

2401_86664420的博客 1310

C++实现高精度除法(附带源码)

C++实现高精度除法(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 1591

【算法基础篇】(四十八)突破 IO 与数值极限:快速读写 +__int128 实战指南

本文针对算法竞赛中的两大瓶颈问题——大规模数据IO超时和超longlong数值溢出,提出了高效解决方案。首先介绍了快速读写技术,通过直接操作字符流和秦九韶算法转换,将IO效率提升5-10倍,适用于1e6级别的数据输入;其次详细讲解了__int128类型的使用方法,它能处理1e38范围内的整数运算,是传统高精度算法的轻量化替代方案。文章提供了两种技术的具体实现代码,分析了适用场景与效率对比,并通过实战例题展示了如何结合使用这两种技术处理超大规模数据问题。

2301_79248256的博客 1302

__int128用法(例题:2024牛客多校9的I题)

小G正在寻找一种特殊类型的数字,它具有以下特征:它们有n位数字。将这个数除以两半得到两个完全平方数,可能有前导零。可以保证n≡0mod2,(这个的意思其实就是,n一定是偶数,即一定能对半分)现在小G想知道在LR范围内有多少这样的数。这两半的长度必须相同。

2301_76945207的博客 721

VS2022 c和汇编同时用报错 使用了非标准扩展: 不支持在此结构上使用“__asm”关键字

只需要将图中debug处的x64改为x86即可成功编译。

C__Error的博客 1229

在vs2022编辑c语言汇编代码报错 使用了非标准拓展:不支持在此结构上使用“——asm关键字”...

这个错误提示是因为在 Visual Studio 2022 中编写的 C 语言代码中使用了 "__asm" 关键字,而这是一个非标准扩展。在 C 语言中,"__asm" 关键字用于包含汇编语言代码,但是这个关键字并不是 C 标准的一部分。因此,如果要在 Visual Studio 2022 中编写汇编代码,应该使用其他方法,例如使用 inline 汇编。 ...

weixin_42613018的博客 3315
上一篇: 数据结构——vector 清晰讲解
VINTAGE_vector
博客等级 码龄5年 213粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值