相关文章
巨量算数 请求加密算法爬虫 巨量算数具体怎么使用
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://zleialh.xhstdz.com/news/1270.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://zleialh.xhstdz.com/mobile/ , 查看更多   
最新文章
做seo为什么要从白帽seo做起
本人十三君跟着师父十二君做seo也有些时间了,从接触seo以来,发现一个有趣的现象:很多做seo的人员,尤其是新人总想着玩黑帽与
企业工信部备案提交教程(电子化备案)
一、教程目的 本教程主要针对首次备案过程中所需基本信息的填写说明。 (非经营性网站:只要是通过第三方支付࿰
伊金霍洛网站排名优化费用是如何计算的?
伊金霍洛网站seo优化百度搜索引擎关键词快速排名推广提升自然流量点击SEO优化师、网站设计师、梦想者您的流量获取专家“创新互联
【R9s(全网通)搜狗手机输入法下载】OPPO R9s 全网通搜狗手机输入法12.1.1免费下载
搜狗输入法,拥有超大中文词库,输入更加精准,智能。搜狗智能旺仔带你用表达,斗图,妙语,输入更加有趣。******特色功能******
57、曾正忠三部曲 《变化球 Breaking Ball》《迟来的决战 The Last Battle》《无胆狗雄 TATAMI》
水平有限,还望轻喷。\\\ ( 'ω' ) //// 相较去年,重心从挑选top10变成了尽量多列举一些作品,所以今年提及的漫画数量比较
微信公众号及服务号文章爬取
使用Python爬取公众号文章主要两种方法:通过爬取第三方公众号聚合网站通过微信公众平台引用文章接口微信传送门已被封杀,现存可
人工智能板块震荡:投资者应关注AI ETF与软件ETF动态
随着科技的不断发展,人工智能(AI)领域的投资持续引发市场的关注。根据最新市场数据,截至今日收盘,中证人工智能主题指数上涨
男科专题:宁波市男科医院排名更新,宁波普仁男科医院怎么样
男科专题:宁波市男科医院排名更新,宁波普仁男科医院怎么样?男科疾病常常困扰着男性的生活与工作,影响着他们的身心健康。因此
品牌升级前必须思考的5个关键问题
重塑品牌事关重大,改变现有的品牌名称或形象可能会非常冒险。但同时,品牌形象升级也可能恰恰是治愈品牌病痛的不二良方。当企业
城口SEO优化神器,企业线上崛起的利器揭秘
城口SEO优化推广软件,为企业线上崛起提供强劲助力。通过精准关键词优化、网站结构优化等手段,提升网站在搜索引擎排名,吸引潜
相关文章