相关文章
巨量算数 请求加密算法爬虫 巨量算数具体怎么使用
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://changmeillh.xhstdz.com/news/1270.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://changmeillh.xhstdz.com/mobile/ , 查看更多   
最新文章
sem简历(优秀7篇)
【#sem简历#】简历的质量直接关系到求职的成功与否。那么,如何写好一份简历呢? 以下是小编整理的sem简历案例,同时,幻主简历
fb海外推广营销的技巧有哪些?联系方式是多少
fb海外推广营销的技巧有哪些?联系方式是多少
AI智能写作助手:全能文本生成软件,解决文章创作、内容策划与文案编写需求
在这个信息爆炸的时代内容创作已成为各行各业的刚需。无论是文章写作、内容策划还是文案编写都需要高效、高品质的文本生成工具。
网站抓好内容质量仍seo优化的重点和难点
众所周知,企业网站内容来源是大家面对的共同难题,企业站不像资讯类网站,比如站长网,很多草根站长的投稿是其内容源源不断的有
在寻找提升WordPress网站SEO效果的插件时,有哪些免费且高效的选项值得推荐?
Yoast SEO提供全面的SEO工具,包括关键词优化、元标签管理、XML站点地图生成等。功能全面,适合初学者和高级用户。免费版只能优
RPA实战案例解析,一文看懂RPA工作原理
在这个快节奏的时代,我们渴望更多时间追求梦想。面对电脑前堆积的数据录入和商品上架等重复工作,我们感到束缚。然而,RPA机器
做seo为什么要从白帽seo做起
本人十三君跟着师父十二君做seo也有些时间了,从接触seo以来,发现一个有趣的现象:很多做seo的人员,尤其是新人总想着玩黑帽与
企业工信部备案提交教程(电子化备案)
一、教程目的 本教程主要针对首次备案过程中所需基本信息的填写说明。 (非经营性网站:只要是通过第三方支付࿰
伊金霍洛网站排名优化费用是如何计算的?
伊金霍洛网站seo优化百度搜索引擎关键词快速排名推广提升自然流量点击SEO优化师、网站设计师、梦想者您的流量获取专家“创新互联
【R9s(全网通)搜狗手机输入法下载】OPPO R9s 全网通搜狗手机输入法12.1.1免费下载
搜狗输入法,拥有超大中文词库,输入更加精准,智能。搜狗智能旺仔带你用表达,斗图,妙语,输入更加有趣。******特色功能******
相关文章