相关文章
巨量算数 请求加密算法爬虫 巨量算数具体怎么使用
2024-11-10 17:01

巨量算数 请求加密算法爬虫 巨量算数具体怎么使用

巨大数的简单运算

**

目前计算机对于数据长度的处理是存在一定限度的,用与计算处理各种数据。例如C语言提供了许多整数类型(int,short,long), 一般情况使用int类型即可,但是要完成特殊的功能数据的长度就不得不超出C语言的处理范围,这时就需要使用另外的方法对这些数据进行处理,虽然float类型(可表示的数据范围是-2^218 ~ 2^218)和double类型(可表示的数据范围- 2^1024 ~ 2^1024)也可以使用,但是float的有效位数只有7位,double类型的有效位数也只有15位,处理数据不够精确,数据的位数越多,丢失的信息量也越大。因此我们提供一种对位数超出表示范围的数据的处理工具——也就是这个巨大数的处理工具。

1、万进制

万进制,顾名思义,就是逢万进一,和二进制十进制的原理是一样的(二进制逢二进一,十进制逢十进一)。

优点:1、当巨大数用字符串输入后,会使用字符型数组来存储它,也就是说将巨大数中的每一位数字视作一个字符存储进数组,每个字节存储一个数字字符;若是使用万进制的话,每次将巨大数的4位存储到int类型的四个字节中,int数组中的每个元素取值为0~9999,和使用字符串的效率相同,并且已经将字符存储成了数据,方便了以后的计算。

2、之所以使用万进制,而不用更高的进制位,是因为在涉及乘法的计算中依然要使单次计算的数据结果保持在int类型可以表示的范围(-2147483648 ~ 2147483647)之内(例:若使用十万进制,当出现99999×99999 = 9999800001,但是很明显9999800001已经超出了int类型的表示范围),若使用千进制,则不能发挥计算机强大的计算能力,因此万进制是最合适的进位。在进行加法运算时,对应位置进行加和之后都会有进位的可能,为保证所有数据都不遗失,则必须设置进位的问题:carry(进位) = result / 10000,count(本位) = result % 10000.(这也可以用到其他进制当中,例如为二进制时,进位就是结果除以2,本位就是结果取余2)。

2、微易码补码

在巨大数处理过程中,为了避免对负数操作过程中引起的复杂运算,引用到微易码补码,与补码的原理相似(补码表示法规定:正数的补码与其原码相同;负数的补码是在原码的基础上,除符号位外按位取反,末尾加一),而对于微易码补码,同样是除符号位外,将负数的每一位与9取反。

巨量算数 请求加密算法爬虫 巨量算数具体怎么使用_进制

注意:巨大数所申请的int数组长度 = (巨大数字符的长度 + 3)/ 4; 例如:巨大数123456789; count =(9 + 3)/ 4;

1、加法运算

加法分为有进位和无进位两种情况,有进位又有一种特殊情况:进位饱和。

我们来一步一步分析。

无进位:

巨量算数 请求加密算法爬虫 巨量算数具体怎么使用_补码_02

无进位是最简单的一种,那么结果的正负号怎么确定呢,答案是是用两个数的本身符号与进位的异或运算。例如.357-54,sign = 0 ^ 1 ^ 1 = 0。有进位:

巨量算数 请求加密算法爬虫 巨量算数具体怎么使用_数据_03

在这里,我们发现有进位的时结果与正确结果差1,所以我们在有进位时,将进位加到最后的结果上,就得到了正确答案。如果是无进位的情况,进位为0,也是正确的。所以在结果后面加上进位,就是最终的正确结果。我们再来看下面一种特殊情况:

巨量算数 请求加密算法爬虫 巨量算数具体怎么使用_巨量算数 请求加密算法爬虫_04

这种情况结果就发生了很大的错误,并不是简单修正就能解决,我们来看看它为什么会发生这样的问题。我们发现在运算时进位发生了溢出,本来是数值结果的进位被溢出当成了符号位去进行结果符号位的判断,数值结果也就出现了极大的问题。所以,我们在本来的运算数上多加一个辅助位,目的就是为了存放溢出的数值结果。即我们在正数前补0000,负数前补9999,这样就有效的解决了这个问题。

正确的结果如下:

巨量算数 请求加密算法爬虫 巨量算数具体怎么使用_巨量算数 请求加密算法爬虫_05

巨量算数 请求加密算法爬虫 巨量算数具体怎么使用_数据_06

加法的代码如下:

2、减法运算

减法运算就是加法运算的逆运算,只需将其中一个数变为相反数,再调用加法函数即可。 代码如下:

注意代码中,改变了hn2->sign的符号并计算完成后,再把符号变成了原本自身的符号,这样可以防止接下来的减法运算里,产生符号的问题。

3、乘法运算

一般的乘法过程:

巨量算数 请求加密算法爬虫 巨量算数具体怎么使用_数据_07

巨大数的乘法过程:

巨量算数 请求加密算法爬虫 巨量算数具体怎么使用_巨量算数 请求加密算法爬虫_08

普通乘法每次乘一位,所以错位相加一位。

巨大数每次乘四位,所以错位相加四位。

乘法的代码如下:

4、除法运算

关于除法运算,目前的微易码补码还没有给出解决方案,还没能实现。

    以上就是本篇文章【巨量算数 请求加密算法爬虫 巨量算数具体怎么使用】的全部内容了,欢迎阅览 ! 文章地址:http://fswenzheng.xhstdz.com/news/1270.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://fswenzheng.xhstdz.com/mobile/ , 查看更多   
最新文章
浅探webpack优化
由于前端的快速发展,相关工具的发展速度也是相当迅猛,各大框架例如vue,react都有自己优秀的脚手架工具来帮助我们
百度收录平台排名 揭秘百度收录平台排名,优化策略助你领跑新媒体
在当今这个信息爆炸的时代,互联网已成为企业展示自我、吸引客户、拓展市场不可或缺的重要渠道而在浩瀚的网络海洋中,如何让自己
为什么要做海外推广方式
为什么要进行海外推广方式:探索国际化市场的关键路径一、引言在全球化和数字化迅猛发展的当下,企业的海外推广成为了进入国际市
99%亚马逊运营都不知道的“以图找同款”功能!
亚马逊已与各大社交媒体平台达成了合作,在社媒平台的分享按钮中,多了一个亚马逊图标。大家可以理解为:从社媒平台到亚马逊平台
如何通过百度网站链接提交提升企业在搜索引擎中的知名度与排名
目前,数字化新时代盛行之际,网络的广泛应用使得网站成为企业展现自身、招揽顾客及拓展市场的重要载体。然而,仅有网站并非万能
电脑磁盘分区格式GPT和MBR哪个好 电脑磁盘分区格式GPT和MBR对比【详解】
  最近不少用户在安装电脑的时候经常会安装新的电脑硬盘,在新的电脑硬盘安装的时候,电脑都会提示用户需要进行初始化磁盘,并
百度seo排名优化是什么?
在当今这个数字化和信息化的时代,搜索引擎已经成为人们获取信息、寻找服务的重要工具。百度,作为中国非常大的搜索引擎,其排名
永州SEO优化,企业品牌腾飞的关键策略
永州SEO推广排名,助力企业品牌崛起。通过优化关键词、提升网站质量、布局搜索引擎算法,提高企业网站在搜索引擎中的排名,吸引
百度新网站收录揭秘:内容质量决定速度,SEO优化引爆排名
百度新网站收录情况近期,公众重点关注了百度搜索引擎针对新型网站的收录状况。作为网站主与网络市场推广从业者,网站于搜索引擎
SEO营销咨询,企业互联网转型的高效秘籍
SEO营销咨询,企业互联网转型的得力助手!我们提供专业的SEO策略,提升网站排名,增强网络曝光,助力企业高效转型,抢占市场先机
相关文章