高精度数的基本表示方法

高精度数的储存形式

1.使用字符串

  字符串是由一个一个的字符连接而成的,每个字符可以用于保存一个数位单元。可以把一个数字作为字符存放在字符串中,也可以把数字转换成ASCII码来保存。由于美意字符的最大ASCII码的值是255,因此可以使用256进制来保存数据。例如,把十进制456789变成一个字符串:(456789)10 = (6,248,85)256 = chr(6)&chr(248)&chr(85)

若把数字作为字符串来保存,则在计算时需要进行字符与数值转换。使用这种方法的好处是能解决小数点的表示问题

2.使用数组

  如同字符串一样,若使用数组来储存超高精度的书,每个数组单元可以作为一个储存单元,并采用进位制的形式来构成一个超高精度数的储存空间。根据数据类型的不同,如单进度、双精度,进位制的技术可以设置不同。在限定的条件下,可以根据需要设计出具体的进位制

3.使用链表

  这种储存方法与使用数组一样,所不同是使用链表。这种方法的好处是,每个链表可以储存更多的信息,并且可以使用链表的前后指针索引相邻数据。

超高精度书包括整型和浮点型

  对于长整数,计算相对较简单,因为没有小数点的问题。对它的储存,只需要把数字按照一定的方式保存到字符串、数组或链表中即可。

  对于超高精度的浮点数,可以把它分解成整数和小数部分,分别进行计算。在计算时,使用不同的数组分别存放浮点数的各个部分。

数字存放顺序

  在计算机系统中,有两种数据存放格式,即大端和小端格式。同样在超高精度的计算程序设计时,需要选择一种顺序来存放数据。按照通常习惯,把数的高位放在左边,低位放在右边,亦即低位数在前,高位数在后。因此若使用数组存放超高精度的数,一般使用小索引号的数组单元放置低位数字,大索引号的数组单元放置高位数字。

数的进制设置

  使用10的n次方(n为一个正整数),可以把长整数进行分组形成1个数向量,每组数字的个数为n。例如,601105002456789可分解成如下的每组为n=6的整数向量:

456789

105112

     601

将这个数记作A,654321记作B,则AxB = C

    A      B      C

0         +456789*654321 = 298886 635269       →      635269

298886+105112*654321 = 68777 287838   →  287838

68777  +601    *654321 =   393 315968    →  315968

393      +0   *654321 =   393                        →  393

结果即393315968287838635269

转载于:https://www.cnblogs.com/Daywei/archive/2012/03/06/2381630.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值