【文档说明】c语言第2章数据的表示和组织课件.ppt,共(28)页,382.366 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44550.html
以下为本文档部分文字说明:
程序设计基础第2章数据的表示和组织数据的存储介质——存储器数据的组织基本数据类型本章的基本内容是:程序设计基础2.1数据的存储介质——存储器二进制1.进位计数制——简称进制计数方法:当某一位的值达到某个固定量时,就要向高位产生进位。不同的进制以基数来区分,若以r代表基数,则:r=10为十进
制,可使用0,1,2,…,9共10个数码;r=2为二进制,可使用0,1共2个数码;r=8为八进制,可使用0,1,2,…,7共8个数码;r=16为十六进制,可使用0,1,2,…,9,A,B,C,D,E,F共16个数码。每个位置都对应一个权值,称为位权值。r进制数通常写作(an…a1a0.a
-1…a-m)r,其中ai∈{0,1,…,r-1}(-m≤i≤n)。例如:(1101)2,(689.12)10程序设计基础二进制1.进位计数制算术运算:遵守“逢r进1,借1当r”的规则。例如:十进制的运算规则为“逢10进1,借1当10”,二进制的运算规则为“逢2进1,借
1当2”。加减乘除0+0=00+1=11+0=11+1=0(向高位进1)0-0=00-1=1(向高位借1)1-0=11-1=00×0=00×1=01×0=01×1=10÷0(没有意义)0÷1=01÷0(没有意义)1÷1=12.1数据的存储介质——存储器程序设计基础二进制2.进位计数制二进制数与十进
制数之间的转换(1)二进制数转换为十进制数将二进制数转换为十进制数只需将二进制数按位权值展开然后求和,所得结果即为对应的十进制数。:2.1数据的存储介质——存储器例2.1将二进制数1101.11转换为十进制数。解:1101.11=
1×23+1×22+0×21+1×20+1×2-1+1×2-2=13.75则:(1101.11)2=(13.75)10程序设计基础二进制2.进位计数制二进制数与十进制数之间的转换(2)十进制数转换为二进制数十进制整数转
换为二进制整数:除基取余,逆序排列。2.1数据的存储介质——存储器例2.2将十进制整数46转换为二进制整数。解:除数商余数46230231111151521210101则:(46)10=(101110)2逆序排列程序设计基础二进制2.1数据的存储介质——存储器十进制小数转换为二进
制小数:乘基取整,正序排列。例2.3将十进制小数0.375转换为二进制小数。解:乘数积整数0.3750.7500.751.510.51.01则:(0.325)10=(0.011)2程序设计基础存储器存储器分为两种:内存储器(内存)和外存储器(
外存或辅存),我们通常所说的存储器指的是内存储器。内存储器有两种:随机存储器RAM和只读存储器ROM。内存储器的最小存储单位是位(bit),每个位可以存储一位二进制数。存储单元是可管理的最小存储单位,典型
的存储单元是一个字节(Byte)。每个存储单元的编号称为地址,地址一般从0开始连续编号——线性编址。2.1数据的存储介质——存储器程序设计基础存储器001100101110100010101010…...1000110111100011000000
0000000001……111111011111111011111111地址存储单元的信息存储单元任意时刻存储单元的内容都不会是空的,一定是0和1的编码访问(存取):读出/写入2.1数据的存储介质——存储器程
序设计基础2.2数据的组织在计算机内部,任何数据都是以二进制形式存储的,那么,程序是如何操作这些数据的?如果程序需要处理大量的数据,那么,计算机如何是组织这些数据的?程序设计基础1.二进制形式各种数据在计算机底层没有任何含义,程序中的整数、实数、字
符等数据都需要编程人员人工用二进制表示出来,再输入到计算机的存储单元中,程序中对数据的处理是基于内存的,即直接操作内存。2.2数据的组织010101111101011110000——内存程序程序设计基础2.基本数据类型数据通常以某种特定形式(整、实、字符串)存在,不同形式的数据其处理规则
不同。高级程序设计语言根据数据对象的不同使用规则,在二进制形式存储的基础上引入了整型、实型、字符型、逻辑型等基本数据类型。2.2数据的组织回避了“存储器”的概念010101111101011110000——内存程序基本数据类型:整型、实型、字符型、逻辑型程序设计基础3.构造数据
类型和自定义数据类型复杂程序经常要用到一些基本数据类型的组合,于是出现了更加抽象的构造数据类型。由于用户的实际需要随着程序的不同而不同,于是出现了自定义数据类型。2.2数据的组织自行组织数据而不局限于基本
数据类型010101111101011110000——内存程序基本数据类型:整型、实型、字符型、逻辑型构造数据类型和自定义数据类型程序设计基础4.抽象数据类型可以将抽象数据类型理解为“数据+操作”,即把一组数据对象及其上的操作封装成一个
整体。例如,整数的数学概念和施加到整数的运算构成一个抽象数据类型,C++语言中的基本数据类型int是对这个抽象数据类型的物理实现。2.2数据的组织程序设计基础2.2数据的组织内存:数据以二进制形式存储基本数据类型自定义数据类型抽象数据类型抽象级别越来越高数据粒度越来越大数据组织的发展历程
——数据抽象的过程程序设计基础2.3基本数据类型整型在C/C++语言中,整型数据的基本类型说明符是int(integer的简写)。1.存储格式在微型计算机中,整型数据的存储格式一般采用补码表示。1100111111000111符号-12345的补码存储低地址高地址00110
00000111001符号12345的补码存储0011100100110000低地址高地址高字节低字节高字节低字节1100011111001111程序设计基础2.3基本数据类型整型1100111111000
111符号-12345的补码存储低地址高地址0011000000111001符号12345的补码存储0011100100110000低地址高地址高字节低字节高字节低字节1100011111001111例2.4X=+1
000101,则[X]补=01000101X=-1000101,则[X]补=10111010+1=10111011[X]补=01000101,则X=+1000101[X]补=10111011,则X=10111011-1=10111010=-1000101程序设计基础
2.3基本数据类型整型2.取值范围抽象地讲,整型数据的值域是全体整数,但计算机是有限的,计算机内存和其他硬件设备只能存储和操作一定量的数据,因此,每种计算机能表示的整数都在某一范围之内。例如,4位二进制数表示的整数集合如下:位串011
10110010101000011001000010000数值76543210位串111111101101110010111010100111000数值-1-2-3-4-5-6-7-8程序设计基础2.3基本数据类型整
型C/C++语言根据取值范围的不同,将整型数据进一步分为:基本整型(int)、短整型(修饰符short)和长整型(修饰符long)。类型名类型说明符二进制位数取值范围基本整型int16-32768~32767即-215~(215-1)短整型shortint16-32768
~32767即-215~(215-1)长整型longint32-2147483648~2147483647即-231~(231-1)程序设计基础2.3基本数据类型有符号数和无符号数0111111111111111符号位1111111111111111数据位(a)有符号最大正整数3
2767(b)无符号最大正整数65535无符号整型unsignedint160~65535即0~216-1无符号短整型unsignedshortint160~65535即0~216-1无符号长整型unsignedlongint320~4294967295即0~(232-1)类型名类型说
明符二进制位数取值范围程序设计基础3.运算集合由于整型数据能够表示的整数是有限的,如果运算的结果超过了系统能够表示的整数范围,这种错误现象称为溢出。例3.7假设整数用1个字节表示,计算68+61的值。解:68=+100
0100[68]补=0100010061=+0111101[61]补=0011110101000100[68]补+00111101[61]补10000001[-127]补2.3基本数据类型整型程序设计基础2
.3基本数据类型实型实型也称为浮点型,实型数据也称为实数或浮点数。实型数据在计算机中一般采用浮点形式存储,C语言提供了两种浮点数格式:单精度(float)和双精度(double)。1.存储格式一般情况下,float(即floating-point的简写)型数据在内存中占
4个字节,double(即doubling-point的简写)型数据在内存中占8个字节,但是用多少位来表示阶码(即指数部分),用多少位来表示尾数(即小数部分),标准C没有具体规定,由具体的编译系统来决定。程序设计基础2.3基本数据类型实型例2.6假设某C/C++编译系统的float型数据占3
2位二进制,其中24位表示尾数,8位表示阶码,给出68.625在内存中的存放形式。解:(68.625)10=(1000100.101)2=(0.1000100101×2111)存储000000001010000001000100000001
11低地址高地址00000111010001001010000000000000第4字节第3字节第2字节第1字节阶符阶码111尾符尾数0.1000100101程序设计基础2.3基本数据类型整型2.取值范围根据IEEE标准,float
型数据占32位,其中尾数占24位,阶码占8位,而double型数据占64位,其中尾数占52位,阶码占12位。类型名类型说明符二进制位数取值范围精度单精度浮点型float323.4×10-38~3.4×10388位有效数字双精度浮点型double641.79×10-308~1.79×103081
6位有效数字程序设计基础2.3基本数据类型整型3.运算集合在C/C++语言中,实型数据可以进行基本的算术运算(如加、减、乘、除等),同样需要注意溢出问题,要保证运算结果在系统能够表示的实数范围。在C/C++语言中,实型数
据可以进行基本的算术运算(如加、减、乘、除等),同样需要注意溢出问题,要保证运算结果在系统能够表示的实数范围。由于实型数据的精度是有限的,所以一般应避免将两个实型数据比较大小,例如,对于float型实数12345.6789和12345.6782,由于float型数据只能存储8位
有效数字,第9位数字是系统加上的随机数,所以,这两个实数的比较结果不能确定。实型数据一般不能进行逻辑运算,对实数进行逻辑运算没有实际意义。程序设计基础2.3基本数据类型字符型1.存储格式微型计算机一般采用ASCII码。在C语言中,字符型的类型说明符是char,char型数据在内存中需要一个字
节。存储01100001a的ASCII码为972.取值范围char型数据的取值范围是ASCII码值为0~255对应的字符。3.运算集合不同的程序设计语言为字符型数据提供的运算集合不同。程序设计基础2.3基本数据类型逻辑型逻辑型也称为布尔型。1.存储格式:不同的程序设计语言对逻辑型数
据的表示有所不同,同一程序设计语言的不同编译器对逻辑型数据的表示有所不同,甚至同一编译器的不同版本对逻辑型数据的表示也有所不同。2.取值范围:该类型的数据只有两个可能的取值:真和假。3.运算集合:可以进行逻辑运算,C语言中将整型作为逻辑型,因此,逻辑型数据也可以进行算术运算。程序设计基
础本章小结——知识结构图程序设计基础作业:习题3: