CH01 基础知识.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章 预备知识:数和码 有限字长的二进制数 十进制与二进制的转换 BCD码 ASCII码 十六进制记数法 书写时数字 “0x34A0” 4位字长的记数法对比 十进制到二进制的转换 有限字长的二进制数 CPU只支持规定字长以内的整数运算; 字长8位(1Byte),字长16位(2Bytes); 因为有程序,8位字长的CPU通过指令作业,可实现16位、32位等数值计算 C语言通过内部函数(指令组)可以支持char/unsingned char, int/unsigned int, long/unsigned long,甚至float, double 等数据类型 注意,如果CPU能直接处理任意的数据类型,就不需要辛苦学编程! 无符号整数的二进制表示 1字节(8位, unsigned char )共具有28=256个编码方式,表示无符号数0~255; 2字节(16位,unsigned int)共具有216=65536个编码方式,表示无符号数0~65536; ……, 0 ≤ X ≤ 2n-1 当两个无符号数相加时,如果最高位发生进位,并且没有对该进位进行必要的处理,则运算结果发生溢出错误。 关于补码表示的探索 二进制硬件计数器的回绕现象(以3位为例) 回绕现象体现出有限字长的限制 一定数值范围内,观察 无符号数的表示 带符号数的原码表示 带符号数的补码表示 负数补码的例子 求-27的补码表示 先写出其相反数+27的补码。二进制,应为 (1) 将该数按位取反,得 (2) 再在末位加1得 (3) (3)即-27的补码表示。易验证(1)+(3)=0 char ,int自动以补码表示 补码加减法的运算规则 通过引进补码,在不发生溢出的情况下,代数加、减法规则如下:    [X+Y]补=[X]补+[Y]补 [X-Y]补=[X]补- [Y]补= [X]补+[-Y]补   其中X,Y为正负数均可,符号与数值统一编码参与运算。 补码的特点: 补码最高位为0,真值为正,为1真值为负; 但补码的最高位不能理解为符号位,因为补码表示时,符号与数值相统一编码; 补码运算时,同号相加或异号相减,绝对值增大,有可能导致数值超出规定字长补码可以表达的范围,产生溢出错误。 由补码求真值: 例 声明为char x的变量,如何用数码管显示? 识别符号: If(x≥0) { … } else { … } 最多十进制3位,如何分离? 运算对标志的影响举例(一) 0000 0011 3 +3 +0000 1100 +12 +(+12) 0000 1111 15 +15 NC,NV ? 0000 0110 6 +6 +1111 1100 +252 +(-4) 1 0000 0010 258255 +2 CY,NV ? 运算对标志的影响举例(二) 0000 1000 8 +8 +0111 1011 +123 +(+123) 1000 0011 131 +131 NC,OV ? 1000 0111 135 -121 +1111 0101 +245 +(- 11) 1 0111 1100 380255 -132-128 CY,OV BCD码 用4位二进制数表示一位十进制数。有两种表示法:压缩BCD码和非压缩BCD码。 压缩BCD码的每一位用4位二进制表示,0000~1001表示0~9,一个字节表示两位十进制数。 非压缩BCD码用一个字节表示一位十进制数,高4位总是0000,低4位的0000~1001表示0~9。 例:压缩BCD码数的LED显示 压缩BCD码数的一个字节相当于10进制 位? 如何分离出高位和低位? 如何实现显示? 硬件的7段译码——74LS47 软件译码——查表,对应0~9,分别要送一个适合于硬件显示的码。由于规律性不强,就用查表法。 ASCII码—美国标准信息交换代码 例: 声明了变量unsigned char x;怎样以10进制形式打印到微型打印机? 本题如果是在通用计算机上,使用C语言的标准打印功能,向屏幕打印,只要使用printf就行了。 但是printf太庞大 嵌入式系统,不一定有标准输出设备 事实上,只要将x的百、十、个位分离,将每个数字转换成ASCII码,依次送到打印机就可以了: 百位= x / 100; 十位=(x % 100)/10; 个位= x % 10; 转换成ASCII

文档评论(0)

海川电子书城 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档