中语言超酷特性 之 --- 多精度计算

中语言计算技术研究与发展联盟

舒生羽  wzyorg@gmail.com

 

      计算是程序的本质所在,数学计算更是程序的源头。因此,更由于数学计算在科学研究与工业生产中的重要性,程序语言对数学计算有着强大表达力很多时候是程序员对编程语言的一个基本要求。

      然而,有人指出,现代计算机从未实现过真正数学意义上的数的概念。的确如此,比如数学上的数是无限的,这对于现代计算机就是一个难以逾越的障碍。不过人们通过越来越强大的硬件和软件来向这一能力逼近。

      中语言以提供强大的计算能力为重要设计目标之一,而且尤其重视科学计算。前面曾介绍过中语言直接映射了数学里面的五大代数系统(整数、有理数、实数、复数、四元数),并且每个系统的数可以有无限多的爻位。这些使得使用中语言实现科学计算程序可以得到相当的便利。

      在中语言里多精度计算指的就是对于那类具有无限爻位的数的计算。这些数的类是以‘太’来表示容量的五大代数系统之一。这样,中语言的多精度计算与通常的使用计算机自然支持的算术在形式上几乎无区别。

      中语言的多精度计算建立在著名的多精度计算库gmp之上,这个库里面包括mpzmpqmpfmpc等,这个库也是gcc的依赖库。

      下面就是一个使用中语言整数型的多精度计算的例子。

 朴库.标准进出;



道: ()->()=
{
    甲: 太元= 1#"111222333444555666777888999";
    打印文套("甲 = ");
    甲.写出();
    打印字('\n');
    乙: 太元= 1#"123456789123456789123456789";
    打印文套("乙 = ");
    乙.写出();
    打印字('\n');
    途一: 太元;
    甲 * 甲 + 2 -: [ ] * 甲 * 乙 + 乙 * 乙 -> 途一;
    打印文套("第一种平方和 = ");
    途一.写出();
    打印字('\n');
    打印文套("甲 = ");
    甲.写出();
    打印字('\n');
    打印文套("乙 = ");
    乙.写出();
    打印字('\n');
    途二: 太元;
    (甲 + 乙) * (甲 + 乙) -> 途二;
    打印文套("第二种平方和 = ");
    途二.写出();
}

程序的执行结果如下图所示:

官网文件参考: http://www.zhongyuyan.org/ZStudy/超酷程序/多精度计算.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值