C++程序设计:第2章 不同进制的转换

上传人:夏** 文档编号:568937857 上传时间:2024-07-27 格式:PPT 页数:45 大小:1.34MB
返回 下载 相关 举报
C++程序设计:第2章 不同进制的转换_第1页
第1页 / 共45页
C++程序设计:第2章 不同进制的转换_第2页
第2页 / 共45页
C++程序设计:第2章 不同进制的转换_第3页
第3页 / 共45页
C++程序设计:第2章 不同进制的转换_第4页
第4页 / 共45页
C++程序设计:第2章 不同进制的转换_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《C++程序设计:第2章 不同进制的转换》由会员分享,可在线阅读,更多相关《C++程序设计:第2章 不同进制的转换(45页珍藏版)》请在金锄头文库上搜索。

1、1请将您的手机铃声请将您的手机铃声设置为震动设置为震动2作业作业&实验教程:实验教程: 3.阅读程序阅读程序 (第第23页页)&课课 本:本: 习习 题题 1.4 (第第10页页)3位:位:计算机中所有的数据都是以二进制来表计算机中所有的数据都是以二进制来表 示的,一个二进制代码称为一位,记为示的,一个二进制代码称为一位,记为 bit。位是计算机中最小的信息单位。位是计算机中最小的信息单位。字节:字节:在对二进制数据进行存储时,以八位在对二进制数据进行存储时,以八位 二进制代码为一个单元存放在一起,二进制代码为一个单元存放在一起, 称为一个字节,记为称为一个字节,记为Byte。字节是计。字节是

2、计 算机中次小的存储单位。算机中次小的存储单位。复复 习习 回回 顾顾例:例:11111111、00000011例:例:0、1bitByte4常用进制常用进制 基数基数数符数符二二 进进 制制R=20、1八八 进进 制制R=80、1、2、3、4、5、6、7十十 进进 制制R=100、1、2、3、4、5、6、7、8、十六进制十六进制R=160、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F不同进制的转换不同进制的转换二二 进进 制制 R=20、1八八 进进 制制 R=8 0、1、2、3、4、5、6、7十十 进进 制制R=100、1、2、3、4、5、6、7、8、9十六进制十六进制 R=

3、160、1、2、3、 4、 5、 6、 7、 8、9、A、B、C、D、E、F5二进制、八进制转换二进制、八进制转换八进八进制数制数01234567二进二进制数制数000 001 010 011 100101110 111例例: (100111011)2=(100 111 011)2=(473)8例例: (100111011)2=(100 111 011)26十六进十六进制数制数01234567二进制二进制数数000000010010001101000101 0110 0111十六进十六进制数制数89ABCDEF二进制二进制数数100010011010101111001101 11101111二

4、进制、十六进制转换二进制、十六进制转换例例: (100111011)2 =(1 0011 1011)=(13B)16例例: (100111011)2=(1 0011 1011)27不同进制的转换不同进制的转换二、八、十六进制向十进制转换二、八、十六进制向十进制转换 十进制数十进制数(154)10=1*102+5*101+4*100154(101)2=1*22+0*21+1*205(154)8=1*82+5*81+4*80108(15B)16=1*162+5*161+11*160347(154)10(101)2(154)8(15B)168 36/2=18 0 十进制向二进制转换十进制向二进制转换

5、余数余数18/2=9 09/2=4 14/2=2 02/2=1 01/2=0 1不同进制的转换不同进制的转换(36)10=(100100)2 (36)10=(?)2 9原原 码码 符号位用数字符号位用数字0或或1表示的二进制数表示的二进制数表示正数表示正数表示负数表示负数例例: :设设 a=1001, b= - -1110, 机器存储字长为机器存储字长为8位位 a原原= 00001001b原原= 10001110符号位正符号位正符号位负符号位负 原码、反码及补码原码、反码及补码10a原原=00001001b原原=10001110原原 码码 符号位用数字符号位用数字0或或1表示的二进制数表示的二

6、进制数反反 码码 x原原 x 0x反反 =xi表示对表示对x的第的第 i 位数值求反位数值求反1x1x2xN x 0x反反 =1x1x2xN x 0x补补 =x反反 +1 x 0原码、反码及补码原码、反码及补码12a原原=00001001b反反=11110001b原原=10001110b补补=11110010例例 机器字长为机器字长为8位位, a=1001, b= - -1110 a反反=00001001a补补=00001001采用补码目的是把减法运算化作加法运算采用补码目的是把减法运算化作加法运算 a=9 b=-14 c=9-14=-5 b补补=11110010a补补=00001001+c补

7、补=11111011c补补=11111011c反反=11111010c原原=10000101-513- -1的原码:的原码:10000000 00000001- -1的反码:的反码:11111111 11111110- -1的补码:的补码:11111111 111111118进制进制: 17777716进制进制: f f f f特殊示例特殊示例14C程序格式程序格式#include 头文件头文件.hvoid main( ) 定义变量定义变量 变量赋值变量赋值 加工处理加工处理 结果输出结果输出 15例例 子子#include stdio.hvoid main( ) int a,b,c; sca

8、nf(%d,%d,&a,&b); c=a+b; printf(%dn,c);包含文件包含文件定定义义变变量量#include命令:命令:把另一个文件的全部内容把另一个文件的全部内容 包含到本文件之中。包含到本文件之中。(P9)两种使用格式:两种使用格式:#include stdio.h #include 变变量量赋赋值值加加工工处处理理结结果果输输出出16第二章第二章 数据类型及基本运算数据类型及基本运算 vC的数据类型的数据类型v基本数据类型及其表示基本数据类型及其表示v不同类型数据间的转换不同类型数据间的转换v运算符和表达式运算符和表达式17C的数据类型的数据类型内存以字节为单元组成内存以

9、字节为单元组成每个字节有一内存地址每个字节有一内存地址每字节由每字节由8个个位位组成组成每个每个位位的值是的值是0或或10000H0001H0002H0003H0004H10010011001110100010数据存储规律数据存储规律: :101000101010001018C数数据据类类型型构造类型构造类型指针类型指针类型空类型空类型void自定义类型自定义类型typedef枚举类型枚举类型enum基本类型基本类型数值数值类型类型字符类型字符类型char整整 型型浮点型浮点型单精度型单精度型float双精度型双精度型double短整型短整型short长整型长整型long整型整型int数组数组

10、结构体结构体struct共用体共用体unionb _above $123M.D.John3dayschar$123ab例例 子子#3324定义:定义:程序运行时其值不能改变的量(常数)程序运行时其值不能改变的量(常数)分类分类: :基本数据类型及其表示基本数据类型及其表示常量常量符号常量符号常量: : 用标识符代表常量用标识符代表常量(P13)定义格式:定义格式:#define 符号常量符号常量 常量常量值值 一般用一般用大写字母大写字母 是宏定义是宏定义预处理预处理命令命令 符号常量举例符号常量举例 #include #define PRICE 30 void main() int num,

11、total; num=10; total=num*PRICE; printf(total=%d,total); 25定义:定义:程序运行时其值不能改变的量(常数)程序运行时其值不能改变的量(常数)分类分类: :基本数据类型及其表示基本数据类型及其表示常量常量 直接常量直接常量: : 整型常量整型常量 实型常量实型常量字符常量字符常量 字符串常量字符串常量符号常量符号常量: : 用标识符代表常量用标识符代表常量26八进制整数:由数字八进制整数:由数字0开头开头, ,后接数字后接数字07 三种形式:三种形式:十进制整数:由数字十进制整数:由数字09和和正负号正负号表示表示. . 整型常量的类型整型

12、常量的类型: :根据其值所在范围确定其数据类型根据其值所在范围确定其数据类型&整型常量(整常数)整型常量(整常数)例:例:123, -456, 0十六进制整数:由十六进制整数:由0x开头开头, ,后接后接09,af,AF例:例:0123, 011例:例:0x123, 0X2f整常量后加字母整常量后加字母l或或L,认为它是认为它是long int 型常量型常量例:例:30000 为为int型型 55520 为为long int型型例:例:12 与与 12L27指数形式:指数形式: (e或或E之前必须有之前必须有数字数字;指数必须为;指数必须为整数整数)例:例:12.3e-3, 123E2, e-

13、5, 1.23e4, 1.2E-3.5例:例:0.123, .123, 123.0, 0.0, 123.&实型常量(实数或浮点数)实型常量(实数或浮点数)表示形式表示形式:十进制数形式:(必须有十进制数形式:(必须有小数点小数点) 28定义定义: :用用单引号单引号括起来的单个普通字符或括起来的单个普通字符或转转 义字符义字符. .例例: #include void main( ) char a,b; a=33; b=!; printf(%c,%cn,a,b); printf(%d,%dn,a,b); &字符常量字符常量字符常量的字符常量的值值:该字符的:该字符的ASCII码码值值(P277)

14、例:例:a A ? n例:例:A:65 a: 97 0:48 !: 3329定义定义: :用用单引号单引号括起来的单个普通字符或括起来的单个普通字符或转转 义字符义字符. .&字符常量字符常量转义字符转义字符: :反斜线后面跟一个字符表示反斜线后面跟一个字符表示 转义转义字符字符含含 义义nvradddtb0xhh含义含义换行换行垂直制表垂直制表回车回车响铃响铃单引号单引号8进制数代进制数代表的字符表的字符水平制表水平制表退格退格字符串结束字符串结束反斜线反斜线双引号双引号16进制数代进制数代表的字符表的字符转义转义字符字符30例例 转义字符举例转义字符举例#include void main

15、() printf(I say:How are you?n); printf(C Program);&字符常量字符常量转义字符转义字符: :反斜线后面跟一个字符表示反斜线后面跟一个字符表示 运行结果:运行结果:(屏幕显示屏幕显示)I say:How are you?C Program定义定义: :用用单引号单引号括起来的单个普通字符或括起来的单个普通字符或转转 义字符义字符. .31&字符串常量字符串常量h e l l o 0例例: 字符串字符串“hello”在内存中在内存中表示为表示为例例: 空串空串在内存中在内存中表示为表示为 0定义:定义:用双引号括起来的字符序列用双引号括起来的字符序列

16、存储:存储:每个字符串尾自动加一每个字符串尾自动加一 0 作为作为 串结束标志串结束标志32例例: char ch; ch=A; 字符常量与字符串常量字符常量与字符串常量的区别:的区别:&字符串常量字符串常量aa 0例:例: aa例例: char ch; ch=A; 定义:定义:用双引号括起来的字符序列用双引号括起来的字符序列存储:存储:每个字符串尾自动加一每个字符串尾自动加一 0 作为作为 串结束标志串结束标志33变量变量概念:概念:其值可以改变的量其值可以改变的量格式:格式:数据类型数据类型 变量变量1,变量变量2,变量变量n;基本数据类型及其表示基本数据类型及其表示决定分配的字节数决定分

17、配的字节数和数字的表示范围和数字的表示范围合法标识符合法标识符例例: int a, b, c; float sum;34变量变量概念:概念:其值可以改变的量其值可以改变的量格式:格式:数据类型数据类型 变量变量1,变量变量2,变量变量n;基本数据类型及其表示基本数据类型及其表示特点:特点:变量初始化变量初始化-定义时赋初值定义时赋初值 变量的使用变量的使用-先定义,后使用先定义,后使用变量定义位置变量定义位置-一般放在函数开头一般放在函数开头例例: int a=2, b, c=4; float data=3.67; char ch=A; int x=1, y=1, z=1; int x=y=z

18、=1;例例: int student; stadent=19;Undefined symbol stadent in function main例例: #include void main( ) int a=1, b, c=3; printf(%d,%d,%d,a,b,c); 350101H0103H0105H0100H0102H0104H内存内存编译程序根据编译程序根据变量定义为其变量定义为其分配指定字节分配指定字节的内存单元的内存单元int a=1, b, c=3;abc2字节字节2字节字节2字节字节1xx 3随机数随机数例例 子子36#include #define PRICE 12vo

19、id main() int num=3,total; char ch1,ch2; scanf(%c,&ch1);total=num*PRICE; ch2=ch1-A+67; printf(%d,%cn,total,ch2); 例例 子子符号常量符号常量变量定义变量定义输出结果输出结果输入值输入值37不同类型数据间的转换不同类型数据间的转换说明说明:必定的转换必定的转换运算对象类型不同时转换运算对象类型不同时转换doublefloatlongunsignedintchar,short低低高高38不同类型数据间的转换不同类型数据间的转换隐式转换隐式转换函数调用转换:函数调用转换:实参与形参类型不一

20、致时转换实参与形参类型不一致时转换运算转换:运算转换:不同类型数据混合运算时不同类型数据混合运算时赋值转换赋值转换:将值赋给与其类型不同的变量时将值赋给与其类型不同的变量时例例: int a=52; float b=1.2, c; c=a+b;例例: int a=52; float b; b=a;#include void main() int a=10, b=5, s; s=add(a,b); printf(%dn,s); float add(float x,float y) float z; z=x+y; return(z); 不同类型数据运算时先自动转换成同一类型不同类型数据运算时先自动

21、转换成同一类型39#include void main() float x=3.6; int i; i=(int)x; printf(%f,%d,x,i);不同类型数据间的转换不同类型数据间的转换显式转换显式转换例子例子: (double)(3/2) (int)3.6 形式形式:(类型名类型名)(表达式表达式)较高较高类型类型向较向较低类低类型转型转换时换时可能可能发生发生精度精度损失损失问题问题结果:结果:x=3.600000, i=3精度损精度损失失40运算符和表达式运算符和表达式算术运算符:算术运算符:+ - * / % + -关系运算符:关系运算符: = !=逻辑运算符:逻辑运算符:!

22、 & |位运算符位运算符 : | &赋值运算符:赋值运算符:= 及其扩展及其扩展条件运算符:条件运算符:?:逗号运算符:逗号运算符:,指针运算符:指针运算符:* &求字节数求字节数 :sizeof强制类型转换:强制类型转换:(类型)类型)分量运算符:分量运算符:. -下标运算符:下标运算符:其它其它 :( ) -41例例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例例 5%2 = 1 -5%2 =-1 1%10 = 1 5%1 = 0 5.5%2 ( )例例 5/2 = -5/2.0 =“- -”可为可为单目单目运算符运算符, ,右结合性右结合性两整数相除,结果为整数两整数

23、相除,结果为整数%要求两侧均为整型数据要求两侧均为整型数据例例 5/2 = 2 -5/2.0 = -2.5基本算术运算符:基本算术运算符: + - * / %&算术运算符和表达式算术运算符和表达式42自增、自减运算符自增、自减运算符:+ -&算术运算符和表达式算术运算符和表达式作用:作用:使变量值加使变量值加1或减或减1种类:种类:前置前置 +i, -i (先先执行执行i+1或或i-1,再使用再使用i值)值)后置后置 i+, i- (先使用先使用i值值,再执行再执行i+1或或i-1)例例 j=3; k=+j; j=3; k=j+; j=3; printf(%d,+j); j=3; printf

24、(%d,j+); a=3; b=5;c=(+a)*b; a=3; b=5;c=(a+)*b; /k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=443自增、自减运算符自增、自减运算符:+ -&算术运算符和表达式算术运算符和表达式作用:作用:使变量值加使变量值加1或减或减1种类:种类:前置前置 +i, -i (先先执行执行i+1或或i-1,再使用再使用i值)值)后置后置 i+, i- (先使用先使用i值值,再执行再执行i+1或或i-1)不能用于常量和表达式不能用于常量和表达式,如如 5+,(a+b)+结合方向:结合方向: 自右向左自右向左优先级:优先级:- + - -* / % -+ - 说明:说明:44设设: int a=2 , b=5, c=6 ;求表达式求表达式 - - - -c- -b % a+ 的值的值 5 1 3 4答案答案: 4例例 子子452001年试题一年试题一/(2)设设: int a=2 , b=5,c ; 写出下面表达写出下面表达式的运算结果式的运算结果c=21%9 / (float) a+4 / b* *b 2.03 1.50 0 1.5最后运算结果为最后运算结果为1,因为,因为c为整型为整型

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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