明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2660|回复: 0

[风之影][经验]字符串长度

[复制链接]
发表于 2011-11-12 10:47:10 | 显示全部楼层 |阅读模式
本帖最后由 cabinsummer 于 2011-11-12 10:48 编辑

我在LISP大挑战第一季里公布了一个计算圆周率的方法。但在计算4000位时总是出错。经过一番探索发现,LISP不能处理长度超过4096的字符串。
过程如下:计算4000位时,开始是6位一组,中间加一空格输出,出错。我以为是算法问题,将分组改为5位一组计算4000位,但还是出错。计算3000位时则没有问题。因此我想找到一个临界值,到底在哪里会发生问题。经过一番奋斗,发现5位一组,在3410时是正确的,在3415位时出错。3410位输出的字符串长度为3410/5*6+2=4094,3415位输出的字符串长度为3415/5*6+2=4100,实际上已经不可能正确输出了。我改用表的形式输出,超过3415位也不会出错。反复调试后,确定LISP能处理的最大字符串长度为4096,也就是4K。超长的字符串在我们平时编程中很难遇到,所以有此经验给大家分享。

评分

参与人数 1明经币 +1 收起 理由
Ea + 1

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 12:45 , Processed in 0.174966 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表