正在加载图片...
你会问为什么不直接就定一个实型就好呢?实型不就包含了整型的值吗(如2.0等于2 元)?好!问得好,我不喜欢书上说什么就记什么,一个“为什么”也不去想的学习方法 由于能力的限制,大多数人如你我,都不能为这个世界发明奉献什么新技术,我们只能作 为技术的“接受者”而活在这个世上。然而正因为只能作为接受者,我们就更应该在学习 任何技术前,先学会从一定的高度来询问:为什么会有这个技术(这个技术为什么会出现)? 我现在需要这个技术吗(必竟学习需要占用时间)?这么做并非是一种消极态度,相反 它的积极意议在于:经过这种思考,你不仅可以把有限的时间花在值的学习上,而且只有 弄明白了一样技术(或技术的概念)产生的需要,我们才有可能真正理解它,从而比别人 学得更深刻更本质 一个问题牵出一堆废话,回答却很简单:因为在计算机里,对整数的运算要远远快于对 浮点数的运算,所以,在人类的思维习惯与计算机特点之间,必须做一个折衷。 折衷的结果就是虽然都是数值类型,但程序员在程序时,必须事先想好,哪些数据是必 须带小数计算的,那些数据定为实型,比如工资,没有哪个员工会认为老板可以将自已工 资中的小数位忽略不计;而那些可以不用,或者可以不计较小数的数值,则被建议设计成 整型,比如人的年纪,虽然可以,但我们很少需要有类似1.6岁这种说法。想想,假如 位女士说自已28岁,而你却立刻纠正她:“不,准确地说,您已经28.7岁了”……结局 会怎样呢?为了那0.7岁,不仅你的程序会跑得慢,而且会倍受女人的白眼杀伤。 想想其实也很自然:工资必须设计成实型,而年龄虽然不是必须,但建议设计成整型。 4.2.3理解数值的范围 然而事情并未就此结束。 顾及计算机的运行速度,人(程序员)做出了妥协,必须面对“整型”或“实型”的考 虑。另一方面,和速度同样重要的是计算机的空间的考虑。它让程序员必须再做一步妥协 小时候你一定有过这样的经历:你说100,另一个小伙伴就说101。你说1000,他就说 1001,你说10000,他就说:那我10001。总之他就是要比你大1。这种游戏不会有分出胜 负的结局,只会让你郁闷为什么就不能有个最大数让你说了以后,那家伙就再了无法往上 加1了!现在你学编程,儿时的“妄想”终于在计算机的世界中实现了。在计算机世界中, 你可以说一个数,当别人再住这个数加1时,真不幸,计算机会告诉他说:加1是加1了 可是结果变成0,甚至是负数。你会问为什么不直接就定一个实型就好呢?实型不就包含了整型的值吗(如 2.0 等于 2 元)?好!问得好,我不喜欢书上说什么就记什么,一个“为什么”也不去想的学习方法。 由于能力的限制,大多数人如你我,都不能为这个世界发明奉献什么新技术,我们只能作 为技术的“接受者”而活在这个世上。然而正因为只能作为接受者,我们就更应该在学习 任何技术前,先学会从一定的高度来询问:为什么会有这个技术(这个技术为什么会出现)? 我现在需要这个技术吗(必竟学习需要占用时间)?这么做并非是一种消极态度,相反, 它的积极意议在于:经过这种思考,你不仅可以把有限的时间花在值的学习上,而且只有 弄明白了一样技术(或技术的概念)产生的需要,我们才有可能真正理解它,从而比别人 学得更深刻更本质。 一个问题牵出一堆废话,回答却很简单:因为在计算机里,对整数的运算要远远快于对 浮点数的运算,所以,在人类的思维习惯与计算机特点之间,必须做一个折衷。 折衷的结果就是虽然都是数值类型,但程序员在程序时,必须事先想好,哪些数据是必 须带小数计算的,那些数据定为实型,比如工资,没有哪个员工会认为老板可以将自已工 资中的小数位忽略不计;而那些可以不用,或者可以不计较小数的数值,则被建议设计成 整型,比如人的年纪,虽然可以,但我们很少需要有类似 1.6 岁这种说法。想想,假如一 位女士说自已 28 岁,而你却立刻纠正她:“不,准确地说,您已经 28.7 岁了”……结局 会怎样呢?为了那 0.7 岁,不仅你的程序会跑得慢,而且会倍受女人的白眼杀伤。 想想其实也很自然:工资必须设计成实型,而年龄虽然不是必须,但建议设计成整型。 4.2.3 理解数值的范围 然而事情并未就此结束。 顾及计算机的运行速度,人(程序员)做出了妥协,必须面对“整型”或“实型”的考 虑。另一方面,和速度同样重要的是计算机的空间的考虑。它让程序员必须再做一步妥协。 小时候你一定有过这样的经历:你说 100,另一个小伙伴就说 101。你说 1000,他就说 1001,你说 10000,他就说:那我 10001。总之他就是要比你大 1。这种游戏不会有分出胜 负的结局,只会让你郁闷为什么就不能有个最大数让你说了以后,那家伙就再了无法往上 加 1 了!现在你学编程,儿时的“妄想”终于在计算机的世界中实现了。在计算机世界中, 你可以说一个数,当别人再住这个数加 1 时,真不幸,计算机会告诉他说:加 1 是加 1 了, 可是结果变成 0,甚至是负数
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有