C Primer Plus(6) 中文版 第3章 数据和C 3.2 变量与常量数据 3.3 数据:数据类型关键字

3.2 变量与常量数据
计算可以做很多事情。程序需要使用数据,即承载信息的数字和字符。
有些数据在程序使用之前已经预先设定好了,在整个程序的运行过程中没有变化,这些称为常量(constant)。
其他数据类型在程序运行期间可能会发生变化,这些称为变量(variable)。
3.3 数据:数据类型关键字
C语言通过识别一些基本的数据类型来区分和使用这些不同的数据类型。如果数据是常量,编译器一般通过用户书写的形式来识别类型(如42)。但是,对变量而言,要在声明时指定其类型。
C语言的基本类型关键字,如表3.1所示:
                表3.1 C语言的数据类型关键字
最初K&R给出的关键字        C90标准添加的关键字            C99标准添加的关键字
int                                        signed                                      _Bool
long                                     void                                          _Complex
short                                                                                    _Imaginary
unsigned
char
float
double  
在C语言中,用int关键字来表示基本的整数类型。后3个关键字long、short和unsigned和C90新增的signed用于提供基本整数类型的变式。char关键字用于指定字母和其它字符。另外,char类型也可以表示较小的整数。float、double和long double表示带小数点的数。_Bool类型表示布尔值(true或false),_Complex和_Imaginary分别表示复数和虚数。
通过这些关键字创建的类型,按计算机的存储方式可分为两大基本类型:整数类型和浮点数类型。
位、字节和字
位、字节和字是描述计算机数据单元或存储单位的术语。这里主要值存储单元。
最小的存储单元是位(bit,可以存储0或1(或者说,位用于设置“开”或“关”)。位是计算机内存的基本构建块。
字节(byte)是常用的计算机存储单位。对于几乎所有的机器,1字节均为8位。这是字节的标准定义,至少在衡量存储单位是这样。
既然1位可以表示0或1,那么8位字节就有256(2的8次方)中可能的0、1的组合。
字(word)是设计计算机是给定的自然存储单位。计算机的字长越大,其数据转移越快,允许的内存访问也更多。
3.3.1 整数和浮点数
对我们而言,整数和浮点数的区别是它们的书写方式不同。对计算机而言,它们的区别是存储方式不同。
3.3.2 整数
和数学的概念一样,在C语言中,整数是没有小数部分的数。计算机以二进制数字存储整数,例如,整数7以二进制写时111。因此,要在8位字节中存储该数字,需要把钱5位都设置成0,后3位设置成1。
3.3.3 浮点数
浮点数与数学中的实数的概念差不过。2.75、3.16E7和2e-8都是浮点数。注意,在一个值后面加上一个小数点,该值就成为一个浮点值。3.16E7表示3.16 * 10 ^ 7。7被称为指数。
这里关键是理解浮点数和整数的存储方案不同。计算机把浮点数分为小数部分和指数部分来表示,而且分开存储这两部分。计算机在内部使用二进制和2的幂进行存储,而不是10的幂。整数类型和浮点数类型的实际区别:
*整数没有小数部分,浮点数有小数部分。
*浮点数可以表示的范围比整数大。
*对于一些算术运算(如两个很大的数相减),浮点数损失的精度更多。
*因为在任何区间内,都存在无穷多个实数,所以计算机不能表示区间内所有的值。浮点数只是实际值的近似值。
*过去,浮点运算比整数运算慢,不过,现在许多CPU都包含浮点处理器,缩小了速度上的差距。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_40186813

你的能量无可限量。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值