资源预览内容
第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
第9页 / 共28页
第10页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
个人收集整理勿做商业用途第二章C语言的数据类型和运算2.1数据类型数据是计算机加工处理的对象,C语言中的数据包括:常量、变量和有返回值的函数。为存储和处理的需要,将数据划分为不同的类型,编译程序为不同的类型分配不同大小的存储空间(存储单元的字节数),并对各种类型规定了该类型能进行的运算(运算符集),任何类型数据的值均被限制在一定的范围内,称为数据类型的值域(取值范围)2。 1。1 C的数据类型f基本类型(简单类型)C的数J构造类型据(组合类型)类(导出类型)型指针类型1空类型void整型Y严数值类型宀卅I实型(浮点型字符类型char (8bit)r枚举类型enum数组类型Y结构类型struct联合(共用)类型union文件类型FILE短整数 short (16bit) 整数 int (16bit) 长整数 long (32bit) 单精度型float (32bit) 工双精度型double (64bit)说明:构造类型是由基本类型按一定的规律构造而成的空类型的作用:表示函数没有返回值; 说明函数无参数; 表示指针不指向任何值。2。 1。2数值型数据的表示与存储形式如n的表示:日常表示C语言中的表示3.14159*100.314159*1010.0314159*10231.4159*10-13141.59*10-3尾数部份3.14159e00.314159e+10.0314159e231.4159e-13141.59e-3T_指数部分小数点的位置是浮动的,称为浮点数形式在计算机内部实数都以浮点形式存储,如float占4个字节,三个字节存数字部分,一个字节存指数部分0.314159+ 1个人收集整理勿做商业用途小数点的位置是固定的,称为定点数,如:3。14159 , 10,-20, 1992显然整数都属于定 点数,如:整数10,在计算机内部一般占 2个字节。0 0 0 0 0 0 0 00 0 0 0 1 0 1 0定点数的小数点一般是在最高位(定点小数)或在最低位(定点整数) 。对于实数型定点数如:3.14159,C语言则把它按指数形式存放3.14159e0,即C的实数一律以浮点形式存储。2.1.3字符型数据的表示和存储形式字符型数如:(a,然,3在内存中以相应的 ASCII代码存放(占一个字节),如a 的ASCII代码为97,存储形式为:0 1 1 0 0 0 0 1在C中,ASCII代码值可以被看成整数,如A +3为97与a等价。2。1。4基本类型的名字和长度 下列关键字称为类型区分符:char、 int、 short、 long、 signed、unsigned、float、double类型区分符代表一个基本类型的名字,用来说明一个数据的类型表2.1基本类型的名字和长度完整的类型名简单的类型名类型的长度(字 节)取值范围charchar1有符号:-128127无符号:0255sig ned charsig ned char1-128127Un sig ned charUn sig ned char10255intint2或4 (与具体机 器有关)2 字节:32768327674字节:约一21亿21 亿short intshort2-3276832767long intlong4约-21亿21亿sig ned intsig ned2 或 4 (同 int)同intUn sig ned intun sig ned2 或 4 (同 int)2字节:0655354字节:约042亿sig ned short intsig ned short23276832767Un sig ned short intun sig ned short2065535个人收集整理勿做商业用途sin ged long intsig ned long4约-21亿21亿Un sig ned long intunsin ged long4约042亿floatfloat4绝对值约13。 4e-3813。 4e+38doubledouble8绝对值约:1.7e-3081。7e+308long doublelong double =8由具体实现定义说明: signed禾口 unsigned 不能同时修饰 char,short禾口 long 或 signed禾口 unsigned 不能同时修饰int o float不能使用任何修饰词,double可用long修饰; int的长度与具体机器的字长相同,在16位机上为2字节,在32位机上为4字节。因此,int 的长度与short或long 相同。 sig ned char用1个字节的低7位表示字符值,最高位表示符号。unsigned char用整个字节表示字符值,无符号位。char表示有符号和无符号与具体机 器系统有关,但 char 一定和signed char 或unsigned char 其中之一同。在多数机器系统 中,char 与 signed char 同。 浮点类型的范围与浮点在机器内的表示有关,标准C没有规定浮点数格式,大多数机器浮点数格式为:对于4个字节浮点数,阶码占8位,尾数占2 3位,1位符号位:尾数阶码%-.WVJ符号位(对于8个字节的浮1位)23位点数:8位尾数阶码tv符号位1(1位)52位T11位在浮点数中尾数位决定精度(有效数字位数),阶码决定取值范围 对于带符号的数据类型,一般用最高位(左边第1位)表示符号,0表示正,1表示负,数值以补码形式存放(一个正数的补码是该数的二进制数),如(10 )补为0000000000001010. 个负数的补码为取反加1,如(一10)补为1111111111110110。表中列出的short , int, long 是带符号的(隐含 signed ); 对于无符号的数据类型,最高位不作为符号,与其它各位一起表示数值,因此,无 符号数只表示正数不表示负数,与同样长度的带符号正数相比表示的最大数扩大了一倍。 字符型数据也分为 signed和unsigned 。 ANSI标准ASCII码字符的允许取值范围为个人收集整理勿做商业用途0127,用7位表示就可以了, 最左位补0表示正数。 有些计算机系统, 除ASCII码字符外, 还扩展使用一些图形符号 (如“),扩充使用用128255,其第一位为1 因此,对signed 字符型数取值范围为一 128127.对unsigned字符型,取值范围为0255; 实数类型数据 signed、unsigned之分; 以后各章均使用类型的简写形式; C语言提供了一个测试某一类型数据所占存储空间长度的运算符sizeof,格式为sizeof (类型标识符)。女口 sizeof (char )为1, sizeof (Iong)为4 .2.2常量和变量C的常量有两种形式:一种是文字常量,简称常量或常数,文字常量是由表示值的文字本身直接表示的常量,如123,3。14159;另一种是符号常量,是用标识符表示的文字常量(标识符一般用大写英文字母),标识符是文字常量的名字.任何一个常量都属于一个数据类型, 文字常量的类型由文字常量自身隐含说明,如123为整型,3。14159是一个浮点型,符号常量的类型由定义时指定.2。2.1常量的表示C的常量有整数常量、浮点常量、字符常量、字符串常量和枚举常量。1 .整数整数有三种形式:十进制整数、八进制整数和十六进制整数。十进制整数十进制整数由数字 09组成的数字串,多位数时最左第一个数字不能为0,前面可-500+39 是合法以有表示正负的符号“ + ”或“一 ”,“ + ”可以省略。女口738的整数。八进制整数八进制整数由数字 07组成的数字串,第一个数字必须为 的标志,八进制一般用于表示无符号数如:0137数,而 0128非法。八进制可以与十进制转换:2 1女口 0137= 1*8+3*8+7若将9 5转换为八进制027+013(前导零),它是八进制数 -024是合法的八进制整* 8 0 = 958余7余30即:95 = 01十六进制整数十六进制整数是由数字 09和字母af (或AF)组成的符号串,符号串必须以0 x 或0 X(十六进制的前缀) 开头,十六进制表示无符号整数, 如0x13a 0xc32 0xff 0xb800 0xdc都是合法的十六进制整数。 013a x13a 13a均为非法。说明:所有整数的缺省类型是int ,通过在其后面加后缀字母,可以表示长整数(Iong)无符个人收集整理 勿做商业用途 号整数( unsigned )和无符号长整数( unsigned long).长整数:在任意进制整数后面加I或L,如271 0181 OxlaL无符号整数:在任意进制整数后加 u或U .如 27u 0400U 0x1aU无符号长整数:任意进制的整数后加 uI 或 UL。如: 27uI 0400UL 0x1aUL.后缀字母大小写任意,由于I与数字1容易混,常用L。当整数的值超出 int 类型所能表示的范围时, 称为整数溢出 . 整数溢出会产生不正确 的结果,为避免溢出或类型转换的需要 , 应根据具体情况将整数相应地表示为长整数、无符 号整数或无符号长整数,如在 16位机上 ,整数 123456会产生溢出,应表示成 123456L。2、浮点数 浮点数的一般形式为: 整数部分 。小数部分 e n 其中表示可选项,e n称为指数部分,1 e n表10 士n, “e可以写成“E”。n称 为阶码(13位十进制无符号常整数,可以有前导0但仍表示十进制),n前面的“ + ”可以省略。如123。 567e+5123。 567E5 123。 567e05 都是代表值 12356700.0浮点数的组成规则如下 : 一个浮点数可以无整数部分或小数部分 , 但不能二者均无 . 一个浮点数可以无小数点或指数部分,但不能二者均无。例如:3。141593。1E+02 -.234e+5- 243。e 2 2。01234e+3 0. .08100 。 0 都是合法的浮点数 .若将 2.01e+3 写成 2010,将0 . 写成0,或将 100. 写成 100 则它们不是浮点数而是 整数。下面一些是非法表示:-.e+1 既无小数部分也无整数部分0. 1e-0.5: 阶码不是整数0. 1e+I :阶码不是常量(除非 I 已定义为符号整型常量) 当浮点数
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号