ITPub博客

首页 > Linux操作系统 > Linux操作系统 > C程序设计学习笔记(2)——基本数据类型

C程序设计学习笔记(2)——基本数据类型

原创 Linux操作系统 作者:YYCatNJU 时间:2010-06-08 06:14:14 0 删除 编辑
800x600 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE整形数据

一、整形常量                                      

(1)表示

十进制表示:如123、-123。(不能以0开头,中间不能有空格或分隔号,如012、12 3、 12‘3都是不合法的)

八进制表示:以0开头,0表示该数据是八进制数,如0123表示八进制数123即(123)8。(组成八进制数的只能是数字0-7,如0286是错误的)

十六进制表示:以0x开头,0x表示该数据是十六进制数,如0x123表示十六进制123即(123)16。(组成十六进制数的只能是数字0-9、a-f,即从0到15)

(2)类型

当-32768时,x可以赋值给int或long int。

当{-2147483648时,x可以赋值给long int。

当x后加上u,则认为是unsigned(无符号)型。

当x后加上l,则认为是long int型。

二、整型变量

(1)表示

整形变量是以补吗形式表示的,一个正整形变量的补吗与源码等价,一个负整形变量的补吗等于源码的绝对值取反加一。如int a,b;a=123,b=-123;求a、b的补吗。在turboC和turboC++编译系统中,整形变量以2个字节即16位存放,因此a的源码为0000000001111011,其补吗为0000000001111011;b的源码为1000000001111011,绝对值源码为0000000001111011,取反得1111111110000100,加一得1111111110000101。

(2)类型

基本整形       int                          16位

短整型         short int                      16位

长整形         long int                      32位

以上三类均可加上有符号(signed)或无符号型(unsigned)。

(3)声明

整形变量实行“强制类型定义”原则。即先声明后使用,如不事先声明,则系统不把它当作变量。

浮点型数据

一、浮点型数的含义

浮点型数实际上就是日常所说的实数。

二、浮点数在计算机中的存储形式

数符

阶码

尾数部分

数符:表示浮点数的正负,一般0表示正、1表示负。

阶码:即指数部分,只能是整数,正整数或负整数。

尾数部分:即小数点部分。(顾名思义不能含有整数,而只能是0.abc形式)。如3.14159

+

1

.314159

三、浮点型常量

(1)表示方法

十进制小数形式:±a.b

±表示正负,其中+可以省略。

a表示整数部分。

b表示小数部分。

当a=0或b=0是可省,但a、b不能同时省,小数点不能省。(若省去小数点则会误认为是整形数据)

十进制指数形式:±a.be±c 或 ±a.bE±c

±表示正负,其中+可以省略。

a表示整数部分。

b表示小数部分。

c表示指数部分。

e/E表示底数10。

a为0是可省,如 .23e+3=0.23e+3。

b为0且a不为0可省,同时可省小数点,如1e-3=1.0e-3。

c不可省,且必须为整数直接量。

a、b不能同时省,如  .e-3是错误的。

(2)浮点型常量的规范式

小数点前只有一位非0数字的表示形式被称为规范式。

(3)存储形式

用32位存储,称为单精度浮点数,其有效数为7位,如指定f为单精度浮点变量,将其赋值f=1111111.11,那么存储时只有1111111。一般用f/F作为后缀。

用64位存储,称为双精度浮点数,其有效位数为14。

用128位存储,称为长双精度浮点数,其有效位数为18。一般用l/L作为后缀。

四、浮点型变量

(1)浮点型变量的类型

float           单精度浮点型            32位表示               有效位7

double         双精度浮点型            64位表示               有效位14

long double     长双精度浮点型          128位表示              有效位18

(2)浮点型变量的声明

浮点型变量的声明与整型变量的声明一样,遵循强制声明原则。

float x,y           指定x、y为单精度浮点型

double z            指定z为双精度浮点型

long double h        指定h为长双精度浮点型

五、浮点型数的舍入误差

由于浮点型数是近似表示的,且由于存储空间的限制,浮点型数只能提供有限个有效数字,其它数字将被省去,因而容易产生舍入误差。如

#include

main ()

{

 float a,b;

 a=1234567.00e2;

b=a+20;

printf(“%f\n”,b)

}

其结果是b=a=123456700。这是不正确的,正确值应是123456720,但是由于a、b被指定为单精度浮点数,因此它们只能以7位有效数形式存储,其它的一概被舍去。

六、浮点型的溢出

Infinity            无穷大,超过指定类型的浮点型数范围内的最大值。

Subnormal         低于正常值。

NaN              没有数值。

字符型数据类型

一、字符型数据的定义

字符型数据是C中用来表示字母、标点符号、特殊符号的数据类型。

二、字符常量

两种形式:

(1)用单引号括起来的字符,如‘a’。

(2)用反斜杠开头的字符,又称转义字符,如\n。

存储形式:

字符常量以ASCII码(八进制数)存储,如存储字符‘A’即是存储其对应的ASCII码为十进制的65,八进制的101,二进制形式为1000001(附录A),以二进制存放在计算机中如图

0

1

0

0

0

0

0

1

(注:处理字符型数据必须注意1、找到其对应的ACSII码。2、将其ACSII码转换为二进制形式才是其在内存中的存储形式。3、字符型数据只占一个字节,即8个bit。4、附录A中的ACSII码是十进制形式的中间不需要进行八进制的转换)

转义字符:                                                                         

\n                  换行符

\b                  退格符符

\r                  不换行回车

\t                  制表符

\f                  换页符

\\                  \

\’                  ’

\\’’                 ”

三、字符型数据的标识符char

四、字符变量

作用:

用于存放一个字符常量。(不可以存放字符串)

声明:

Char a,b,c,…;

五、字符串常量

表示:

字符串常以双引号“”括起来,引号内可以是0个或一个字符也可以是多个字符,如“”“a”和“welcome”都是合法的字符串。

与字符常量的区别:

1.书写

字符常量以单引号括起来,字符串以双引号括起来。

2.字符常量可以赋值给一个字符变量,字符串不可以。

注意事项:

1.  双引号在字符串中的运用,不可以直接输入“”,而要用\”,因为双引号是字符串的界限符。

2.  字符串在计算机中存储时会自动加上结束符\0(空字符),书写时不必写出。

3.  \0与空格的区别:\0和空格所对应的十进制数分别为0和32,\0既不输入也不显示,系统自加,空格即输入又显示。

4.  字符串的换行书写:法一、加\后按回车。法二、分成若干个字符串。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24055160/viewspace-664667/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-06-07

  • 博文量
    4
  • 访问量
    2992