同步阅读进度,多语言翻译,过滤屏幕蓝光,评论分享,更多完整功能,更好读书体验,试试 阅读 ‧ 电子书库
整数类型?浮点数类型?如果您觉得这些术语非常陌生,请放松一下,下面将总结二者的含义。如果您不熟悉位、字节和字这些概念,请先阅读前面有关它们的解释。您无须了解所有的细节,就像您无须了解汽车内部引擎的原理就可以进行驾驶一样,但是了解一些计算机或汽车引擎内部所做的事情将对您有所帮助。
对于人,整数和浮点数的区别在于它们的书写。对于计算机,区别在于它们的存储方式。下面分别对它们进行介绍。
3.3.2 整数整数(integer)就是没有小数部分的数。在C中,小数点永远不会出现在整数的书写中。例如2、-23和2456都是整数。数3.14、0.22和2.000都不是整数。整数以二进制数字存储。例如整数7的二进制表示为111,在8位的字节中存储它需要将前5位置0,将后3位置1,如图3.2所示。
图3.2 使用二进制编码存储整数73.3.3 浮点数浮点数(floating-point)差不多可以和数学中的实数(real number)概念相对应。实数包含了整数之间的那些数。2.75、3.16E7、7.00和2e-8都是浮点数。注意,加了小数点的数是浮点型值,所以7是整数类型,而7.00是浮点型。显然,书写浮点数有多种形式。本书将在后面详细介绍e记数法,这里仅做简要介绍:简单地说,3.16E7表示3.16乘以10的7次方(即1后面带有7个0),7称为10的指数。
这里最重要的一点是浮点数与整数的存储方案不同。浮点数表示法将一个数分为小数部分和指数部分并分别存储。因此尽管7.00和整数7有相同的值,但它们的存储方式不同。与机器中的二进制存储方式相似,在十进制中7.0可表示为0.7E1,这里0.7是小数部分,1是指数部分。图3.3所示为浮点数存储的另一个例子。当然,计算机的内部存储使用二进制数字,它使用2的幂而非10的幂。在第15章可以找到有关这一主题的更多讨论,这里我们只关注这两种类型在应用中的区别:
图3.3 以浮点格式存储实数(十进制版本)● 整数没有小数部分;浮点数可以有小数部分。● 浮点数可以表示比整数范围大得多的数,详见本章结尾表3.4。● 对于一些算术运算(例如两个很大的数相减),使用浮点数会损失更多精度。● 因为在任何区间内(比如1.0和2.0之间)都存在无穷多个实数,所以计算机浮点数不能表示区域内所有的值。浮点数往往只是实际值的近似。例如,7.0可能以浮点值6.99999存储。稍后我们将讨论更多有关精度的内容。● 浮点运算通常比整数运算慢。不过,已经开发出了专门处理浮点运算的微处理器,它可以缩小速度上的差别。请支持我们,让我们可以支付服务器费用。
使用微信支付打赏
