c语言数据类型和表现形式

上传人:痛*** 文档编号:214917476 上传时间:2023-05-31 格式:PPT 页数:62 大小:1.67MB
收藏 版权申诉 举报 下载
c语言数据类型和表现形式_第1页
第1页 / 共62页
c语言数据类型和表现形式_第2页
第2页 / 共62页
c语言数据类型和表现形式_第3页
第3页 / 共62页
资源描述:

《c语言数据类型和表现形式》由会员分享,可在线阅读,更多相关《c语言数据类型和表现形式(62页珍藏版)》请在装配图网上搜索。

1、c c语言数据类型和表现形语言数据类型和表现形式式知识回顾2知识回顾3A.数据的存储格式B.合法的取值范围C.占用内存空间的大小D.可参与的运算种类 数据类型数据类型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型整型整型实型(浮点型)实型(浮点型)字符型字符型枚举类型枚举类型数组类型数组类型结构体类型结构体类型共用体类型共用体类型单精度实型单精度实型双精度实型双精度实型基本整型基本整型长整型长整型短整型短整型无符号整型无符号整型长双精度实型长双精度实型A.整型B.实型C.字符型6 计算机知识储备:计算机处理的信息采用二进制的方式表示和存储 71TB1TB=1024GB1024GB

2、1GB1GB=1024MB1024MB1MB1MB=1024KB1024KB1KB1KB=1024B1024B1B1B=8b8b英文称谓中文称谓换算方法bit(b)位(比特)Byte(B)字节1 B=8 bKilobyte(KB)K1 KB=1,024 BMegabyte(MB)兆1 MB=1,024 KBGigabyte(GB)G1 GB=1,024 MBTerabyte(TB)T1 TB=1,024 GB 假设整数在内存中用假设整数在内存中用2 2个字节存储个字节存储1 000 0001 1000 00010 000 0001 1000 0001符号位符号位1 1:负数:负数0 0:正数:

3、正数9 正数正数的原码、反码和补码相同1 的补码的补码 0 000 0000 0000 000132767 的补码的补码 0 111 1111 1111 1111(215-1,2个字节的存储单元能表示的最大正数个字节的存储单元能表示的最大正数)10 负数负数的原码、反码和补码不同 原码:符号位是1,其余各位表示数值的绝对值 反码:符号位是1,其余各位对原码取反 补码:反码加1-1原码原码 1 000 0000 0000 0001 反码反码 1 111 1111 1111 1110 原码取反原码取反补码补码 1 111 1111 1111 1111 反码反码1 11132767(215-1)补码

4、补码 0 111 1111 1111 1111(2(2个字节的存储单元能表示的最大正数个字节的存储单元能表示的最大正数)-32767原码原码 1 111 1111 1111 1111反码反码 1 000 0000 0000 0000 原码取反原码取反补码补码 1 000 0000 0000 0001 反码反码1-32768=-32767-1=-215 补码补码 1 000 0000 0000 0000(2(2个个字字节节的的存存储储单单元元能能表表示示的的最最小小负负数数)12 -32768 -1 0 1 32767 32767 0111 1111 1111 1111 1 0000 0000

5、0000 0001 0 0000 0000 0000 0000 -1 1111 1111 1111 1111 -2 1111 1111 1111 1110 -32767 1000 0000 0000 0001 -32768 1000 0000 0000 00001616位表示的整数范围:以补码的位表示的整数范围:以补码的形式表示、存储形式表示、存储 有符号整型有符号整型 无符号整型无符号整型 数据长度数据长度int unsigned int 32位位short int unsigned short int 16位位Long int unsigned long int 32位位 扩展的整数类型:

6、扩展的整数类型:short、long、unsigned int14C标准中规定标准中规定:1)short 所占内存字节数不大于所占内存字节数不大于int2)int所占内存字节数不大于所占内存字节数不大于long具体实现与具体实现与编译器编译器有关有关有些编译器甚至有些编译器甚至short、int、long所占字节数都相同所占字节数都相同 15有符号有符号 short 1 000 0000 0000 0000 -32768 -2150 111 1111 1111 1111 32767 215-1无符号无符号 unsigned short0000 0000 0000 0000 01111 1111

7、 1111 1111 65535 216-11618实型(浮点型)数据:带有小数部分的数实型(浮点型)数据:带有小数部分的数单精度浮点型单精度浮点型 float双精度浮点型双精度浮点型 double 存储存储 数据精度数据精度 取值范围取值范围 (有效数字有效数字)float 4字节字节 七七/八八位位 (10-38 1038)double 8字节字节 十五十五/十六十六位位 (10-308 10308)doubledouble型数据的精度更高,取值范围更大型数据的精度更高,取值范围更大19u数据精度数据精度 与 取值范围取值范围是两个不同的概念:float x=1234567.89;虽在取值

8、范围内,但无法精确表达。x=1234567.80 最后一位是随机数,损失了有效数字,降低了精度 float y=1.2e55 y 的精度要求不高,但超出取值范围。20-123.45:-1.2345E+02符号位符号位 -阶码阶码 02尾数尾数 1.234521char 8位(VC编译器)(三三)字符型数据表示、存储字符型数据表示、存储22232425 字符具有数值特征字符具有数值特征 A 65 0100 0001 Q:A+1对应什么字符?对应什么字符?26 存储特征:字符存储特征:字符A ASCIISCII 码码对字符进行运算对字符进行运算 对字符的对字符的A ASCIISCII 码进行运算码

9、进行运算例如:A 的 ASCII 码 65则:A+1=66,对应字符字符 B271:整数1:数字字符2829a.反斜杠后跟一个字符或数字b.字符常量,代表一个一个字符 n 101 x41 Ac.所有字符都可以用转义字符表示30I.常量II.变量31I.常量II.变量32#include int main(void)double r,s,v;scanf(%lf,&r);s=4.0*r*r*3.14;v=4.0/3.0*r*r*r*3.14;.return 0;红色标注的是常量33u整型常量u实型常量u字符型常量u符号常量34常量的类型通常由书写格式决定a.123(整型)b.4.56(实型)c.A

10、 (字符型)35 整数的表示程序中三种表现形式:十进制整数:正、负号,09,首位不是0 例:10,123八进制整数:正、负号,07,首位是0 例:010,012316进制整数:正、负号,09,a-f或A-F,前缀是0 x,0X 例:0 x10,0 x12336转换过程:123=01111011(B)二进制 =173(O)八进制 =7B(X)十六进制123 0173 0 x7b16 020 0 x1010 012 0XA注意:不能超出整型数据的取值范围,比长整注意:不能超出整型数据的取值范围,比长整型数还要大的数只能用实数来表示型数还要大的数只能用实数来表示37整数后可以加上字母后缀暗示类型p1

11、23L 123l longp123U 123u unsignedp123LU 123lu unsigned long38实数的表示浮点表示法:实数由正号、负号、阿拉伯数字09和小数点组成,必须有小数点,小数点前后至少一边有数字 0.123 123.4 12.12.12科学计数法:实数由正号、负号、数字和字母e(或E)组成,e是指数的标志,在e之前要有数据(尾数),e之后的指数只能是整数(阶码)。6.026E-27 1.2e+30(+可省略)1E-539AttentionAttention:程序中出现的实数,系统默认是程序中出现的实数,系统默认是doubledouble类型类型40字符常量:单个

12、字符a A 9 +&ASCII字符集列出所有可用的字符(常用的128个,扩展表128个)每个字符:惟一的次序值(ASCII 码)0-9 升序排列A-Z 升序排列a-z 升序排列41用一个标识符代表一个常量(#define命令命令):PI42#include#define PI 3.14int main(void)double r,s,v;printf(“Enter r:);scanf(%lf,&r);s=4.0*PI*r*r;v=4.0/3.0*PI*r*r*r;printf(s=%f,v=%fn,s,v);return 0;#include int main(void)double r,s,

13、v;scanf(%lf,&r);s=4.0*r*r*3.14;v=4.0/3.0*r*r*r*3.14;.return 0;43符号常量的使用提高了程序的可读性,修改方符号常量的使用提高了程序的可读性,修改方符号常量的使用提高了程序的可读性,修改方符号常量的使用提高了程序的可读性,修改方便,便于移植便,便于移植便,便于移植便,便于移植注意:注意:注意:注意:1.definedefine命令的末尾不加分号(是命令,不是语句)命令的末尾不加分号(是命令,不是语句)命令的末尾不加分号(是命令,不是语句)命令的末尾不加分号(是命令,不是语句)2.一般习惯使用大写的英文字母标识符号常量一般习惯使用大写的

14、英文字母标识符号常量一般习惯使用大写的英文字母标识符号常量一般习惯使用大写的英文字母标识符号常量3.符号常量可以被引用,不能在程序中被修改符号常量可以被引用,不能在程序中被修改符号常量可以被引用,不能在程序中被修改符号常量可以被引用,不能在程序中被修改44I.常量II.变量45在程序运行过程中,其值可以被改变的量。46Name 变量名变量名Type 变量类型变量类型Value 变量的值变量的值Address 变量的存储单元变量的存储单元地址地址u变量必须先声明,再初始化,接着可以被使用u声明时指定数据类型数据类型和和变量名变量名格式:类型名类型名 变量名表;变量名表;变量名:合法的标识符习惯使

15、用小写字母;见名知义int celsius,fahr;float x;double area,length;49u变量名对应内存中的一个存储单元,存放该变量名对应内存中的一个存储单元,存放该 变量的值变量的值u该存储单元的大小由变量的数据类型决定该存储单元的大小由变量的数据类型决定50变量名源代码中,变量依靠变量名来标识;目标代码中,变量依靠地址来标识,每个变量的地址互不相同。inta,b;intmain()a+;b+;return0;incl0 x80495f8incl0 x80495fc地址51数据类型任何数据在内存中都是用二进制串的形式表示的;一串二进制数,只有确定了类型,才有真实的含义

16、;例:10111111,10000000,00000000,00000000解释为int型:-1,082,130,432解释为unsigned型:3,212,836,864解释为float型:-1.052目标代码体现数据类型的方式类型的特性蕴含于操作之中;对不同数据类型,源代码中形式上相同的操作,会被转化为目标代码中的不同操作。53inta;shortb;charc;intmain()a+;b+;c+;return0;Incl0 x80495f8incw0 x80495fcincb0 x80495fe不同的操作53p必须先声明,再初始化,接着被使用54变量赋初值:在声明变量的同时对它赋值变量赋

17、初值:在声明变量的同时对它赋值 int a=5,b=3;赋值表达式赋值表达式int a,b;a=5;b=3;接受键盘的输入接受键盘的输入int a,b;scanf(%d%d,&a,&b);55u如何求大小?如何求大小?u是否固定?是否固定?同种类型在不同的平台其占字节数不尽相同如int在16位、32位和64位系统上分别占2、4和8个字节现象与危害在平台间移植时会出现问题,导致数据丢失或者溢出注意!注意!C C语言的关键字语言的关键字两种语法形式两种语法形式 sizeof(sizeof(类型类型):结果为结果为类型类型占用的字节数占用的字节数 sizeof(sizeof(表达式表达式):结果为结

18、果为表达式值所属类型表达式值所属类型占用的字节数占用的字节数#includeinclude void mainvoid main()()printfprintf(Data type Number of bytesn);(Data type Number of bytesn);printfprintf(-n);(-n);printfprintf(char%dn,(char%dn,sizeofsizeof(char);(char);printfprintf(int%dn,(int%dn,sizeofsizeof(int);(int);printfprintf(short int%dn,(short

19、 int%dn,sizeofsizeof(short);(short);printfprintf(long int%dn,(long int%dn,sizeofsizeof(long);(long);printfprintf(float%dn,(float%dn,sizeofsizeof(float);(float);printfprintf(double%dn,(double%dn,sizeofsizeof(double);(double);v介绍C语言的基本数据类型v介绍程序中数据的表现形式v介绍sizeof的作用 60Questions and answersQuestions and answers结束结束

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!