C语言教程.ppt_第1页
C语言教程.ppt_第2页
C语言教程.ppt_第3页
C语言教程.ppt_第4页
C语言教程.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、徐芳,哈尔滨大学(威海)计算机学院,计算机中整数的表示及进制转换,进位制,二进制广泛用于计算机 三进制用于军队编制 八进制 十进制最常用 十二进制时辰、月份、一打物品 十六进制广泛用于计算机 六十进制秒、分,二进制,什么是二进制 何谓十进制? s=knkn-1.k0k-1k-2.k-m 特点:基数为十,逢十进一。 二进制特点:基数为二,逢二进一 二进制优点: 0,1两个状态易物理实现; 运算规则简单。,二进制与十进制对照表,不同进制间的转换,二进制,八进制,十进制,十六进制,十进制化为二进制,十进制整数化为二进制整数 规则:除二取余,直到商为零为止,倒排 例:将十进制数86转化为二进制 2 |

2、 86 0 2 | 43 1 2 | 21 1 2 | 10 0 2 | 5 1 2 | 2 0 2 | 1 1 所以,(86)10=(1010110)2 0,八进制化为二进制,规则:每一个八进制数改写成等值的三 位二进制数,次序不变 例: (17.36)8 = (001 111 .011 110)2 = (1111.01111)2,十六进制化为二进制,规则:每一个位十六进制数改写成等值 的四位二进制数,次序不变 例: (3A8C.D6)16 = (0011 1010 1000 1100.1101 0110)2 = (11101010001100.1101011)2,二进制化为八进制,规则:每

3、三位二进制数改写成等值的一 位八进制数,次序不变 例: (11001111.01111)2 = (11 001 111 .011 110)2 =(317.36)8,二进制化为十六进制,规则:每四位二进制数改写成等值的一 位十六进制数,次序不变 例: (11001111.01111)2 = (1100 1111 .0111 1000)2 = (CF.78)16,二进制数的算数运算,对一个二进制位只有四种运算 0011 + 0 + 1 + 0 + 101110 0 -0=0 0- 1=1 1- 0=1 1- 1=0 算术运算会发生进位、借位,二进制数的加法(cont),多个二进制位相加和十进制相加

4、是一样的 对应位相加,并代进位11100101+ 1011101,二进制数的加法(cont),只适用于无符号数 unsigned 对负数要复杂得多,符号的表示,无符号数(不带符号的整数) 8位:0255,16位:065535 带符号整数 符号位(0:正;1:负) 最高位为符号位(原码表示法) 8位:-127127,16位:-32767+32767,原码、反码、补码,原码:最高位表示符号,数值位用二进制绝对值表示的方法,称为原码表示法 反码:负数的反码:符号位为1,绝对值部分与原码相反。 负数的补码表示:符号位也是“1”,其余为反码的最低位加“1”。,原码、反码、补码,原码和反码都不便于计算机内

5、的运算,因为在运算中要单独处理其符号。最好能做到将符号位和其他位统一处理,对减法也 按加法来处理,这就是补码,补码表示法,一种数的表示方法,使得减法和加法可以同样处理 数可以分为正数和负数,例如,对 4 位数来说, 00000111之间的数是正数 1000 1111之间的数是负数,补码表示法,不把最高位当作符号位,而是给它一个负的权重 E.g., 例如第 8 位置上,其值为 27, 而非 +27,数 101011 的含义为: 1-25 + 024 + 123 + 022 + 121 + 120 1-32 + 016 + 18 + 04 + 12 + 11 21,补码表示法,对正数和负数 都适用

6、!,补码表示方法,0000.+00001.+10010.+20011.+30100.+40101.+50110.+60111.+71000.81001.71010.61011.51100.41101.31110.21111.1,补码表示方法,0000.+00001.+10010.+20011.+30100.+40101.+50110.+60111.+71000.81001.71010.61011.51100.41101.31110.21111.1,只有一个 +0,原码、反码、补码,-0与+0在补码表示法中相同,而在原码、反码表示却不同。 相同位数的二进制补码,表示的范围比原码、反码多一个。 正

7、数的原码、反码、补码都相等,即表示方法只有一种,求补码数的负值,翻转所有的位,最后加 1 00101010(-0+0+32+0+8+0+2+0)+42 11010101(-128+64+0+16+0+4+1)-43 11010110(-43 + 1)-42,翻转所有的位,最后加 1,求补码数的负值,11010110 (-128+64+0+16+0+4+2+0) -42 00101001(-0+0+32+0+8+0+0+1) +41 00101010(+41 + 1) +42,补码数求和,求两个补码数的和,只需要将两个数相加,就象它们都是无符号数unsigned一样 11100101+ 0101

8、1101 最高位如果有额外的进位, 将被抛弃,但是,由于整数所占空间有限,所以 如果有些数字太大,将超出能正确表示的范围 两个大整数相加 01100101+ 01011101,整数的溢出,Overflow,补码数求差,求两个补码数的差,只需要将第二个数求反,然后相加就可以了 X Y = X + (Y),数的表示方法只是一种近似方法,计算机的算术运算只是对数学概念整数的近似表示 数学概念中整数可以无限大,但对N位的计算机来说只能表示小于2N的整数 即,有些操作会引起错误:溢出 overflow,非数值数据的表示,ASCII码,采用7位二进制代码对字符进行编码 数字09的编码是01100000111001,它们的高3位均是011,后4位正好与其对应的二进制代码相符。 英文字母AZ的ASCII码从1000001(41H)开始顺序递增,字母az的ASCII码从1100001(61H)开始顺序递增,这样的排列对信息检索十分有利。,美国标准信息交换代码,ASCII码,练习,1. 将二进制数(101101)2转换为十进制数,结果为

温馨提示

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

评论

0/150

提交评论