根据用户输入数据绘制一个棋盘格子,初步体验用程序接受用户输入。
星期一, 四月 27, 2009
星期日, 四月 26, 2009
c语言中的数据溢出overflow解决
在日常生活中数字是没有大小限制的,但是计算机中的变量是有限制的,不能够完全表现现实世界中的数字,因而就产生了溢出问题。
用常见的Fibonacci数列来说,第一项是0,第二项是1,后面的每一项都是它前两项之和。
0, 1, 1, 2, 3, 5, 8, 13......
这个数列的增长实际上是很快的,当超出计算机变量所能表现的类型的上限后,结果就变为了负值,发生了溢出。
通过一段代码实验Fibonacci数列溢出
这已经使用了最大的数字的数据类型long long,如果还有更大的数字怎么办?我们满手油污的去操作内存分配?
幸好有GNU项目,里面的一个名为gmp(GNU Mutiple Precision Arithmeic Library)的库为我们解决了这一棘手的问题。这个库提供了很多基础的内存分配特性。
修改后的代码:
该库在数值和字符串中做了很好的处理,使你能获得一个真正没有溢出的数值,更符合客观世界的概念。
参考文献:
用常见的Fibonacci数列来说,第一项是0,第二项是1,后面的每一项都是它前两项之和。
0, 1, 1, 2, 3, 5, 8, 13......
这个数列的增长实际上是很快的,当超出计算机变量所能表现的类型的上限后,结果就变为了负值,发生了溢出。
通过一段代码实验Fibonacci数列溢出
这已经使用了最大的数字的数据类型long long,如果还有更大的数字怎么办?我们满手油污的去操作内存分配?
幸好有GNU项目,里面的一个名为gmp(GNU Mutiple Precision Arithmeic Library)的库为我们解决了这一棘手的问题。这个库提供了很多基础的内存分配特性。
修改后的代码:
该库在数值和字符串中做了很好的处理,使你能获得一个真正没有溢出的数值,更符合客观世界的概念。
参考文献:
- Full Circle #24
- http://gmplib.org/manual/
星期日, 四月 12, 2009
RSS地址更换,请大家重新订阅
由于一直使用FeedSky的服务,FEEDSKY类似于Feedburner,是一个RSS烧录服务。近期发现FeekSky的RSS更新很不及时,造成Blog最新文章无法发送给广大的订阅者,所以我决定启用Blogger的默认RSS地址。请大家及时更新自己阅读器中本Blog的RSS地址。
- 原有的FeedSky的RSS会继续保留,当FeedSky修正错误后您有可能获得及时的更新
- 您可以到本Blog页面上重新订阅
- 您也可以使用如下URL直接订阅 http://richard-ma.blogspot.com/feeds/posts/default
订阅:
博文 (Atom)