版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 基本数据类型,预备知识 数据类型 常量与变量 不同类型数据间的转换,2.0 预备知识 计算机中数的表示及进制转换 数码、基与权 数码:表示数的符号(8进制 0、1、2、-7) 基:数码的个数(8进制 8个) 权:每一位所具有的值(8i) 数制,各种进制之间的转换 二进制、八进制、十六进制转换成十进制 方法:按权相加,各种进制之间的转换(整数) 二进制、八进制、十六进制转换成十进制 方法:按权相加,十进制转换成二进制、八进制、十六进制 原理:,方法:连续除以基,从低到高记录余数,直至商为0,二进制与八进制之间的转换 二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制
2、 八进制转换成二进制:用3位二进制数代替每一位八进制数,例 (1101001)2=(001,101,001)2=(151)8,例 (246)8=(010,100,110)2=(10100110)2,000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7,二进制与十六进制之间的转换 二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 十六进制转换成二进制:用4位二进制数代替每一位十六进制数,例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16,例 (4B9E)16=(0100,10
3、11,1001,1110)2=(100101110011110)2,0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F,字节和位 内存以字节为单元组成 每个字节有一个地址 一个字节一般由8个二进制位组成 每个二进位的值是0或1,数值的表示方法原码、反码和补码 原码:最高位为符号位,其余各位为数值本身的绝对值 o为正1为负 反码: 正数:反码与原码相同 负数:符号位为1,其余位对原码取反 补码: 正数:原码、反码、补码相同 负
4、数:最高位为1,其余位为原码取反,再对整个数加1,负数补码转换成十进制数:最高位不动,其余位取反加1,例 补码:11111001 取反:10000110 加1: 10000111=-7,2.1 基本数据类型 数据类型总表,数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作,基本数据类型,整型,字符型,实型,有,无,说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:,一般用大写字母 是宏定义预处理命令,不是C语句 直接常量: 整型常量 实型常量 字符常量 字符串常量,如 #define PRICE 30,常量 定义:程序运行时其值不能改变的量
5、(即常数) 分类: 符号常量:用标识符代表常量 定义格式: #define 符号常量 常量,例 符号常量举例(ch2_1.c) #include #define PRICE 30 void main() int num,total; num=10; total=num*PRICE; printf(total=%d,total); ,运行结果:total=300,整型常量(整常数) 三种形式: 十进制整数:由数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0 x开头,后跟09,af,AF表示. 如0 x123,0Xf
6、f,例 12 与 12L,例 30000 为int型 65536 为long int 型,整型常量的类型 根据其值所在范围确定其数据类型 在整常量后加字母l或L,认为它是long int 型常量 在整常量后加字母u或U,认为它是unsigned 型常量,问题: 0123 = ( )10 0 x123 = ( )10 0Xff = ( )10,实型常量(实数或浮点数) 表示形式: 十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3
7、.5 规范化的指数形式。在字母e或E之前的小数部分,小数点左边应当有且只能有一位非0数字。用指数形式输出时,是按规范化的指数形式输出的。 例如:2.3478e2、3.0999E5、6.46832e12都属于规范化的指数形式。 实型常量都是双精度,如果要指定它为单精度,可以加后缀f(实型数据类型参看实型变量部分说明)。,字符常量 定义:用单引号括起来的单个普通字符或转义字符.,字符常量的值:该字符的ASCII码值,如 101 -A 012 -n 376 - x61 -a 60 -0 483 -(),例: A-101-x41-65,如 A65, a97, 048 , n10,如 a A ? n 1
8、01,转义字符:反斜线后面跟一个字符或一个代码值表示,例 转义字符举例(ch2_001.c,ch2_004.c) #include void main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C); ,运行结果:(屏幕显示) A B C Isay:”How are you?” C Program Turbo C,例 #include void main() printf(“Yb=n”); ,运行结果: 屏幕显示:=,字符常量与字符串常量不同,字符串常量 定义:用双引号
9、(“”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符串结束标志,例: char ch; ch=“A”;,a与a的区别:a是字符常量,可以赋给字符变量,在内存中占一个字节; a是字符串常量,不能赋给字符变量,在内存中占两个字节(包括一个字符串结束标志”0” )。,例如:char ch; ch=a; /*是错误的*/ ch=CHINA; /*是错误的*/ ch=a; /*是正确的*/,变量 概念:其值可以改变的量 变量名与变量值 变量定义的一般格式: 数据类型 变量1,变量2,变量n;,变量初始化:定义时赋初值,例: int a,b,c; float data; 变量定义时,可以说
10、明多个相同类型的变量 各个变量用“,”分隔。 类型说明与变量名之间至少有一个空格间隔。,决定分配字节数 和数的表示范围,合法标识符,例: int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1; int x=y=z=1;,变量的使用:先定义,后使用,例1 int student; stadent=19; /Undefined symbol statent in function main,例2 float a,b,c; c=a%b; /Illegal use of floating point in function main,变量
11、定义位置:一般放在函数开头,整型变量 占字节数随机器不同而不同 基本整型int 短整型short(int) 长整型long(int) 可分为有符号 无符号(见教材),实型变量 单精度 float:占4字节,提供7位有效数字 双精度 double:占8字节,提供1516位有效数字,字符型变量 存放字符ASCII码,以二进制形式存放,占用1个字节 char与int数据间可进行算术运算,例 float a; a=111111.111; /* a=111111.1*/ double b; b=111111.111; /* b=111111.111*/,例 a=D; /* a=68; */ x=A+5;
12、 /* x=65+5; */ s=!+G /* s=33+71; */,没有字符串变量,用字符数组存放,Ch2_006.c,可以将整型量赋值给字符变量,也可以将字符量赋值给整型变量。 可以对字符数据进行算术运算,相当于对它们的ASCII码进行算术运算。 一个字符数据既可以以字符形式输出(ASCII码对应的字符),也可以以整数形式输出(直接输出ASCII码)。,例 /*ch2_003.c*/ #include #define PRICE 12.5 void main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch
13、2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); ,运行结果: total=37.500000, ch1=d,教材例题,2.3不同类型数据间的转换 10+a+1.5-8765.1234* c 合法吗? 隐式转换 什么情况下发生 运算转换-不同类型数据混合运算时 赋值转换-把一个值赋给与其类型不同的变量时 输出转换-输出时转换成指定的输出格式 函数调用转换-实参与形参类型不一致时转换 运算转换规则:不同类型数据运算时先自动转换成同一类型,显式转换(强制转换) 一般形式:(类型名)(表达式) 例 (int)(x+y) (int)x+y (double)(3/
14、2) (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变,例 #include void main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3,精度损失问题,Ch2_007.c,Ch2_008.c,十进制:4956= 410+910 +510+610,二进制:1011=12+02 +12+12,十六进制:81AE=816+116 +1016+1416,八进制:4275=48+28 +78+58,变量的三要素 1)变量名:程序中用到的每一个变量都要有一个名字,这个名字由合法的标识符来标识。 2)存储空间:在编译或程序运行期间,系统将为变量分配相应大小的存储空间,每一个存储单元都有一个编号,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育课程质量监督考核制度
- 制造业供应链协同效率制度
- 山区初二英语语法知识点梳理习题真题
- 2.《婴幼儿行为观察与指导》(第二版)试卷及答案
- 高危胸痛患者识别与急救护理知识考核试题
- 阑尾炎护理相关考核试题
- 返岗安全专项考试试题
- 护理创新与改进:护理主管护师的实践方法
- 2026年高职(食品检测技术)阶段测试试题及答案
- 2026年高职(社区护理)综合能力测试试题及答案
- 三维图解2021版高支模施工方案(含计算书)通俗易懂
- 小米培训方法教程课件
- 2025-2030全球与中国辉绿岩行业销售渠道及未来发展态势研究报告
- 【《微型电动车制动系统结构设计》15000字(论文)】
- 大数据与人工智能导论 课件 李建 第1-6章 信息与社会 -数据库技术
- 人教版九年级化学上册《跨学科实践活动5:基于碳中和理念设计低碳行动方案》同步讲义(带答案解析)
- 库房提货协议书范本
- 2025至2030中国汽车租赁行业发展现状及前景趋势与投资报告
- 箱涵结构和配筋计算算表(Excel输入数据自动计算得到计算书)
- 抗体效价与免疫记忆持久性关联-洞察及研究
- 幼儿园数学启蒙教学活动计划
评论
0/150
提交评论