大数运算过程的数学基础--未完

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 00:05 点击:

通常情况下,linux内核是不支持浮点操作的。在进行数据处理过程中,我们经常会处于这样的尴尬:计算过程的数据位长和计算结果的误差产生了冲突.
例如如下的实例:102448/7*1024
这样的表达式在内核中可以如下表达:
long result = 102448/7*1024;
当然,作为实际的操作过程,表达式中的字面常数通常是一些变量。如果result具有累积效应,上面的表达式将产生致命的误差。
数学表达中 102448/7*1024的值为14986678
而表达式 result = 102448/7*1024 的值为14986240
显然,这种误差是巨大的,如何调整这种误差呢?
我们可以将这种问题诉诸数学恒等式:
{A/B*C}= [A/B*C + A%B*C/B]
我们将进行验证:
result = 102448/7*1024 + 102448%7*1024/7;
result = 14986240 + 438
result = 14986678
未完待续

作者“www.475551408.qq.com”

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • /etc/fstab 详解
      • nginx主主集群
      •  LVS-NAT和LVS-DR模式的实现详解
      •  RHCE考试之磁盘配额
      • 学习笔记:ACL详解
      • suse linux双网卡双网关配置
      •  LVM逻辑卷管理器
      •  Nginx主主负载均衡架构
      • ubuntu学习Mysql

      快速直达

      操作系统导航

      LinuxWindows虚拟机
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1