汉扬编程 编程大纲 C语言的数据类型:整型与浮点型

C语言的数据类型:整型与浮点型

C语言中一些数据类型表示数字,一些数据类型表示字母(更普遍地说是字符)。C通过识别一些基本的数据类型来区分和使用这些不同的数据类型。如果数据是常量,编译器一般通过用户书写的形式来识别类型(如,42是整数,42.100是浮点数)。但是,对变量而言,要在声明时指定其类型。现在,我们先来了解一下C语言的基本类型关键字。K&R-C给出了7个与类型相关的关键字。C90标准添加了2个关键字,C99标准又添加了3个关键字。

C语言的数据类型:整型与浮点型

C语言的数据类型:整型与浮点型

C Data Keywords

C语言的数据类型:整型与浮点型

在C语言中,用int关键字来表示基本的整数类型。后3个关键字(long、short和unsigned)和C90新增的signed用于提供基本整数类型的变式,例如unsigned short int和long long int。char关键字用于指定字母和其他字符(如,#、$、%和*)。另外,char类型也可以表示较小的整数。float、double和long double表示带小数点的数。_Bool类型表示布尔值(true或false),_Complex和_Imaginary分别表示复数和虚数。通过这些关键字创建的类型,按计算机的存储方式可分为两大基本类型:整数类型和浮点数类型。

1 整数和浮点数整数类型?浮点数类型?如果觉得这些术语非常陌生,别担心,下面先简述它们的含义。刚开始学习时,不必了解所有的细节,就像学习开车之前不必详细了解汽车内部引擎的原理一样。但是,了解一些计算机或汽车引擎内部的原理会对你有所帮助。对我们而言,整数和浮点数的区别是它们的书写方式不同。对计算机而言,它们的区别是存储方式不同。下面详细介绍整数和浮点数。

2 整数和数学的概念一样,在C语言中,整数是没有小数部分的数。例如,2、−23和2456都是整数。而3.14、0.22和2.000都不是整数。计算机以二进制数字存储整数,例如,整数7以二进制写是111。因此,要在8位字节中存储该数字,需要把前5位都设置成0,后3位设置成1(如图3.2所示)。

Storing the integer 7 using a binary code.

3 浮点数浮点数与数学中实数的概念差不多。2.75、3.16E7、7.00和2e-8都是浮点数。注意,在一个值后面加上一个小数点,该值就成为一个浮点值。所以,7是整数,7.00是浮点数。显然,书写浮点数有多种形式。稍后将详细介绍e记数法,这里先做简要介绍:3.16E7表示3.16×107(3.16乘以10的7次方)。其中,107=10000000,7被称为10的指数。这里关键要理解浮点数和整数的存储方案不同。计算机把浮点数分成小数部分和指数部分来表示,而且分开存储这两部分。因此,虽然7.00和7在数值上相同,但是它们的存储方式不同。在十进制下,可以把7.0写成0.7E1。这里,0.7是小数部分,1是指数部分。图3.3演示了一个存储浮点数的例子。

Storing the number pi in floating-point format (decimal version)

当然,计算机在内部使用二进制和2的幂进行存储,而不是10的幂。现在,我们着重讲解这两种类型的实际区别。

1. 整数没有小数部分,浮点数有小数部分。

2. 浮点数可以表示的范围比整数大。。

3. 对于一些算术运算(如,两个很大的数相减),浮点数损失的精度更多。

4. 因为在任何区间内(如,1.0到2.0之间)都存在无穷多个实数,所以计算机的浮点数不能表示区间内所有的值。浮点数通常只是实际值的近似值。例如,7.0可能被存储为浮点值6.99999。稍后会讨论更多精度方面的内容。

5. 过去,浮点运算比整数运算慢。不过,现在许多CPU都包含浮点处理器,缩小了速度上的差距。

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/mianfei/11760.html

(c语言调用堆栈)c语言如何将函数调用堆栈打印出来?

C语言浮点型转换为整型怎么转换的?

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部