基本数据类型及运算

上传人:j****9 文档编号:54313882 上传时间:2018-09-10 格式:PPT 页数:122 大小:655KB
返回 下载 相关 举报
基本数据类型及运算_第1页
第1页 / 共122页
基本数据类型及运算_第2页
第2页 / 共122页
基本数据类型及运算_第3页
第3页 / 共122页
基本数据类型及运算_第4页
第4页 / 共122页
基本数据类型及运算_第5页
第5页 / 共122页
点击查看更多>>
资源描述

《基本数据类型及运算》由会员分享,可在线阅读,更多相关《基本数据类型及运算(122页珍藏版)》请在金锄头文库上搜索。

1、,第二章,基本数据类型及运算,进位计数制,在计算机科学中除十进制外,常用的还有二进制、八进制和十六进制。 如果用r个基本符号(例如0,1,2,r1)表示数值,则称其为r进制数,r称为该数制的基数。,不同计数制具有的共同特点,每一种计数制都有固定的符号集 如十进制数制,其符号有十个:0,1,2,9。二进制数制,其符号有两个:0和1。都使用位置表示法,即处于不同位置的数符所代表的值不同,其值与所在位置的权值有关。权值是基数的i次幂。其值=数符*权值,二进制各位置的权值,20=1 21=2 22=4 23=8 24=16 25=32 26=64 27=128 28=256 29=512 210=10

2、24 211=2048 212=4096 213=8192 214=16384 215=32768 216=65536,不同进制之间的转换,r进制转换为十进制将r进制数的每位(非零)数值与相应位置的权值相乘,然后相加即可。,思考,(1111)2=( ? ) 10=2?-1 (11111)2=( ? ) 10=2?-1 (111111)2=( ? ) 10=2?-1 (1111111)2=( ? ) 10=2?-1 (11111111)2=( ? ) 10=2?-1,十进制数转换为r进制:除r取余法将一个十进制整数反复除以基数r,直到商为0为止,并记下每次所得余数将最后一个余数到第一余数按从左到

3、右的次序连起来,它们所组成的数字串即为相应的r进制整数。,非十进制数间的转换 两个非十进制数之间的转换方法一般结合上述两种方法进行转换,即先把被转换数据转换为相应的十进制数,然后再将十进制数转换为其他进制数。 由于二进制、八进制和十六进制之间存在特殊关系,即8=23,16=24,因此转换方法就比较容易,特殊关系,1位二进制数相当于1位二进制数 1位四进制数相当于2位二进制数 1位八进制数相当于3位二进制数 1位十六进制数相当于4位二进制数,特殊关系基本对照表,二进制 八进制 二进制 十六进制 二进制 十六进制 000 0 0000 0 1000 8001 1 0001 1 1001 9010

4、2 0010 2 1010 A011 3 0011 3 1011 B100 4 0100 4 1100 C101 5 0101 5 1101 D110 6 0110 6 1110 E111 7 0111 7 1111 F,二进制转换到八进制只需将二进制数从左向右每3位一组(最后不足3位补零),根据基本对照表,从左向右即可完成转换。 二进制同十六进制之间的转换:4位一组 反之,可以转换为二进制,其他相关内容,参考1.1.2,有关位的知识以及计算机中数值的编码表示方法,内存是以1个或偶数个字节为单位的连续的存储空间,每个内存单元有一个唯一的编号,即地址 一个字节由8个二进制位组成 最右边的一位称为

5、“最低位”,最左边的一位称为“最高位”。 每一个二进制位的值是0或1。,以最高位作为符号位 为0表示正数,为1表示负数。 表示数值,可采用不同的编码方法,一般有:原码、反码和补码。,原码,符号位为0代表正数,为1代表负数,其余各位代表数值本身的绝对值 +0和0是同一个数0,而在内存中却有两个不同的表示 。 0000000000000000 1000000000000000 由于0的表示方法不唯一,不适合计算机的运算。,反码,正数的反码与原码相同。 而负数的反码是:原码除符号位外(仍为1),各位取反。 +0的反码是:0000000000000000 0的反码是:1111111111111111

6、同样,0的表示不唯一。所以在计算机内部一般也不使用反码来表示数。,补码,正数的补码与原码相同。 而负数的补码是:除最高位仍为1外,原码的其余各位求反(即反码),再加1。 用补码形式表示数值0时,是唯一的:0000000000000000,计算机通常都是以补码形式存放数。 不仅数值表示唯一,而且能将符号位与其他位统一处理。 在计算机中可以使减法变为加法,为硬件实现提供方便。,主要内容,数据类型 常量 变量 运算符与表达式 类型转换 运算的优先级与结合性等,数据类型,数据类型是一个抽象的概念,包含有一组数据(值)的定义和对该组数据能够进行的操作(运算)的定义。 对数据类型的使用,必须通过类型的实际

7、例子(实例/实体,即变量或常量)来体现。 程序中,数据仅以变量或常量的形式表示,C语言的数据类型,数据类型,构造类型,指针类型,空类型(无值类型) void,C语言的数据类型,基本数据类型较简单,是语言(编译器)已经定义好的类型,可直接使用; 构造类型是由基本数据类型或其他构造类型组织而成的,是程序员自己定义的类型 指针在C语言中极为普遍,指针提供了动态处理变量的能力,是C语言的精髓。,2.1 基本数据类型,基本数据类型是其他类型的基础 整型、字符型、单精度和双精度浮点型 基本类型数据是程序处理的基本对象 不同的数据类型的数据具有不同的取 值范围和允许的操作。,思考,为什么C语言不提供布尔类型

8、?,2.1.1 整型,整型的基本类型名为int。 根据数值的范围又可分为普通整型(int)、短整型 (short int或short)和长整型(long int或long)。 根据整型值是否带符号位来分类,可以分为无符号整型( unsigned )和带符号整型(signed可以省略) 。,类型与类型名,有符号基本整型 有符号短整型 有符号长整型 无符号基本整型 无符号短整型 无符号长整型,( signed) int (signed ) short ( int ) ( signed ) long ( int ) unsigned int unsigned short ( int ) unsign

9、ed long ( int ),整型,需要注意的是,标准C没有具体规定以上各类数据所占内存字节数。 只要求long型数据长度不短于int型,short型不长于int型。 具体如何实现,由各计算机系统和编译系统决定。,整型,如在Turbo C 2.0中,一个int型和一个short型数据分别占用2个字节(16位)的内存空间,一个long型数据占用4个字节(32位)的内存空间; 而在Visual C+ 6.0中,一个short型数据占用2个字节的内存空间,一个int型数据和一个long型数据分别占用4个字节的内存空间。,常用存储容量,1B=8bit=1字节 1KB=1024B 1MB=1024KB

10、 (百万、兆) 1GB=1024MB (十亿、千兆) 1TB=1024GB (万亿、百万兆 ) 1024=1K= 210 32768=215 65536=216 2147483648 =231,整型,根据整型数据所占的位数,可以计算一个整型数据能表示的数据的取值范围。 超出最大值:溢出。 以int(有符号普通整型)为例计算取值范围。在Visual C+ 6.0中,普通整型占32位,即4个字节。,存储方式,0 1 31第0位是符号位: 0:正整数,最大为2311,即2147483647。 1:负整数,1到31位全为0时表示的数最小(231的补码)。最小整数是231,Turbo C2.0中,类型

11、字节数 数值范围 short 2 215(2151) unsigned short 2 0(2161) int 2 215(2151) unsigned 2 0 216 long 4 231(2311) unsigned long 4 0(2321),Visual C+ 6.0,类型 字节数 数值范围 short 2 215(2151)unsigned short 2 0(2161)int 4 231(2311) unsigned 4 0(2321) long 4 231(2311) unsigned long 4 0(2321),2.1.2 浮点型,标准C语言中,浮点型数分为单精度型(flo

12、at)、双精度型(double)和长双精度型(long double)浮点数三类。 一个float型数据占用4个字节的内存空间,一个double型数据占用8个字节的内存空间,一个long double型数据占用16个字节(128位)的内存空间。,有效位数,浮点型数据的取值范围和值的精度与所用的机器有关。 有效位数:是该数中有效数字的个数,指从该数左方第一个非零数字算起到最末一个数字(包括中间的零)的个数,它不取决于小数点的位置。,浮点型数据是按照指数形式存储的。 系统把一个浮点型数据分成小数部分和指数部分,分别存放。 指数部分采用规范化的指数形式:在字母e或E之前的小数部分中,小数点左边有且仅

13、有一位非零的数字,数值范围,类型 字节数 有效位数 数值范围 float 4 67 3.410383.41038 double 8 1516 1.7103081.710308 long double 16 1819 1.21049321.2104932,2.1.3 字符型,C语言中,字符型的基本类型名为char。 在所有的编译系统中都规定以1个字节(8位)来存放一个字符 有符号字符型数据的取值是128128 无符号字符型数据的取值是0255,2.2 常量,常量是在程序执行过程中值不变的数据。 如圆周率的值、字母B在ASC码字符集中的编码值等,这类数据就称为常量。 数值常量:整型常量、浮点数常量

14、 字符型常量:字符常量、字符串常量、转义字符 符号常量,2.2.1 整型常量,常用的三种不同的数制 十进制 八进制 十六进制65 0101 0x41125 0175 0x7d 长整型:-56l;3567L;04L 无符号整型:586u;077765U;0xfffdU 无符号长整型:0375ul;0x45feUL,例2.1 整数的不同进制数表示及转换。,main( ) printf(“%d %x %on“,125,125,125);printf(“%d %x %on“,045,045,045);printf(“%d %x %on“,0x32,0x32,0x32); 执行结果:125 7d 17537 25 4550 32 62,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号