kl800.com省心范文网

(原码、反码、补码)教案


《原码、反码、补码》教案
授课班级:软高 131 【教学目标】
1)知识与能力目标 ? ? ? ? ? ? 掌握真值,机器数的概念 掌握用真值求出原码,反码,补码的方法 掌握原码,反码,补码的互相转换,及其取值范围. 通过本节课的学习,能根据实际需要,求出相应的机器数 培养学生的创新能力和分析问题、解决问题的能力; 注重发挥学生的集体协作能力;

授课时间:2013-11-01

2)过程与方法 3)情感态度价值观

? 注重实际操作,提高学生的独立思考能力 【教学重点】
? ? ? 求出原码,反码,补码的方法 真值与机器数之间的关系 根据需要求出原码,反码,补码

【教学难点】

【教学方法】任务驱动法、小组协作法 【教学过程】
教师活动 学生活动

〖引入〗
问 1: 学生讨论,回答问 我们已经学习了那些进制数? 到 今 天 为 止 , 我 们 学 习 了 十 进 制 (+35;-35), 二 进 制 题,师生互动. (-11011),十六进制(+1D2CH)等这些用来代表实际数值的数我 们统称为真值. 问 2: 以上讲的这些进制数,在我们日常生活当中都会使用到, 那么我们知道在计算机当中数值是怎么来表示的? 再次引出问题,激发

〖新课〗
在计算机中都用二进制数来表示数据.计算机中处理数据 及运算都是用二进制的. 我们定义在计算机中表示的数叫做机器数;

学生思考,讨论

而且我们人为的规定了机器数一般用 8 位二进制数来表示. (即 引出新课内容 一个机器数为一个字节) 而机器数我们又可以分为:原码、反码、补码。
1

教师活动

学生活动

1、原码
因为计算机中用二进制数表示,所以不是二进制的数必须先 转化为二进制数.比如十进制数(-35)我们先要将数值 35 转为 二进制数 100011,而其中的符号”+”、”-”该怎么来表示?
学生思考

我们知道在计算机中只有”0”和”1”能被计算机所识别, 其 中 的 符 因此我们定义用”0”代表符号”+”;用”1”代表符号”-”. 号 ”-” 该 怎 么 这样我们就可以求出(-35)的机器数是:10100011 数值有正负之分,计算机就用一个数的最高位存放符号(0 为 正,1 为负).这就是机器数的原码了.假设机器能处理的位数为 8.即字长为 1byte,原码能表示数值的范围为 (-127~-0 +0~127)共 256 个. 思考讨论: 为什么不是 1100011 而是 10100011? 因为机器数是八位二进制数组成,我们求出来的不满八位, 则我们需要在中间补足 8 位,才能形成一个机器数. 我们刚刚求出来的机器数 10100011 就是(-35)的原码
学生思考,讨论 (用机器数的特点 分析)

来表示?

[-35]原码=10100011
原码的求法: 1、将数值部分转为二进制; 2、 用”0”代替符号”+”;用”1”代替符号”-”,并且将 符号位放在最高位; 3、假如符号位和二进制数组成达不到 8 位,我们将在中间 加 0,补足八位. 那+35 的原码是多少?(讲解)

[+35]原码=00100011

学生参与

练习一:求原码. (-101110)2; 学生上来做. (+7)10; (-61)10

2

教师活动

学生活动

讲解.

[-101110]原码=10101110; [+7]原码=00000111; [-61]原码=10111101;
学生参与,自主学 习

2、反码
从书本上可知:反码是相对原码而言的,求反码,首先要知道 原码,求反码要分为两种情况。 (1)正数的时候; 反码=原码; (2)负数的时候; 反码由原码转变而来,符号位不变,其余各位取反(即 0、1 互换) 举例: 学生参与,自主 学习 学生完成情况反 馈 练习二:求反码; (-101110)2; 学生上来做. (+7)10; (-61)10

[+35]反码=[+35]原码=00100011; [-35]反码=11011100;

[-101110]反码=11010001; [+7]反码=00000111; [-61]反码=11000010;
学生自主学习

3、补码
可得补码也是相对原码而言的,求补码是有反码演变而来 的,且求补码也有两种情况, 情况一:正数 补码=反码=原码; 情况二:负数 补码=反码+1;
3

教师活动

学生活动

举例:

[+35]补码=[+35]反码=[+35]原码=00100011; [-35]补码=[-35]反码+1=11011100+1=11011101;

学生参与。师生 互动 学生完成情况反

练习三:求补码 (-101110)2; 学生上来做. (+7)10; (-61)10



[-101110]补码=[-101110]反码+1 =11010001+1 =11010010 [+7]补码=[+7]反码=[+7]原码=00000111 [-61]补码=[-61]反码+1 =11000010+1 =11000011
回顾求出原码、反码、补码的方法。 学生练习,加深 印象。

原码、补码、反码的总结

学生完成情况反

有了数值的表示方法就可以对数进行算术运算.但是很快就 馈 发现用带符号位的原码进行乘除运算时结果正确,而在加减运 算的时候就出现了问题,如下: 假设字长为 8bits
( 1 ) 10- ( 1 )10 = ( 1 )10 + ( -1 )10 = ( 0 )10

(00000001)原 + (10000001)原 = (10000010)原 = ( -2 ) 显然不正确.

因为在两个整数的加法运算中是没有问题的,于是就发现问 题出现在带符号位的负数身上,对除符号位外的其余各位逐位 分组讨论 取反就产生了反码.反码的取值空间和原码相同且一一对应. 下面是反码的减法运算:
( 1 )10 - ( 1 ) 10= ( 1 ) 10+ ( -1 ) 10= ( 0 )10 (11111111)反 = ( -0 ) 有问题. 4

(00000001) 反+ (11111110)反 =

教师活动
( 1 )10 - ( 2)10 = ( 1 )10 + ( -2 )10 = (00000001) 反+ (11111101)反 = ( -1 )10 ( -1 ) 正确

学生活动

(11111110)反 =

问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负 之分的.(印度人首先将零作为标记并放入运算之中,包含有零 号的印度数学和十进制计数对人类文明的贡献极大). 于是就引入了补码概念. 负数的补码就是对反码加一,而正数 不变,正数的原码反码补码是一样的.在补码中用(-128)代替了 (-0),所以补码的表示范围为: (-128~0~127)共 256 个. 注意:(-128)没有相对应的原码和反码, (-128) = (10000000) 补码的加减运算如下:
( 1 ) 10- ( 1 ) 10= ( 1 )10 + ( -1 )10 = ( 0 )10 (00000000)补 = ( 0 ) 正确 ( -1 )10 正确

(00000001)补 + (11111111)补 =

( 1 ) 10- ( 2) 10= ( 1 )10 + ( -2 )10 = (00000001) 补+ (11111110) 补=

(11111111)补 = ( -1 )

所以补码的设计目的是: ⑴使符号位能与有效值部分一起参加运算,从而简化运算 规则. ⑵使减法运算转换为加法运算,进一步简化计算机中运算器的 线路设计 所有这些转换都是在计算机的最底层进行的,而在我们使用 的汇编、C 等其他高级语言中使用的都是原码。 大致总结一下: 1、在计算机系统中,数值一律用补码来表示(存储) 。 主要原因:使用补码,可以将符号位和其它位统一处理;同时, 减法也可按加法来处理。另外,两个用补码表示的数相加时, 如果最高位(符号位)有进位,则进位被舍弃。 2、补码与原码的转换过程几乎是相同的。 数值的补码表示也分两种情况: (1)正数的补码:与原码相同。 例如,+9 的补码是 00001001。 (2)负数的补码:符号位为 1,其余位为该数绝对值的原码按 位取反;然后整个数加 1。 例如,-7 的补码:因为是负数,则符号位为“1”,整个为 10000111; 其余 7 位为-7 的绝对值+7 的原码 0000111 按位取反
5

教师活动

学生活动

为 1111000;再加 1,所以-7 的补码是 11111001。 已知一个数的补码,求原码的操作分两种情况: (1)如果补码的符号位为“0” ,表示是一个正数,所以补码就 是该数的原码。 (2)如果补码的符号位为“1” ,表示是一个负数,求原码的操 作可以是:符号位为 1,其余各位取反,然后再整个数加 1。 例如,已知一个补码为 11111001,则原码是 10000111(-7) : 因为符号位为 “1” 表示是一个负数, , 所以该位不变, 仍为 “1” ; 其余 7 位 1111001 取反后为 0000110; 再加 1, 所以是 10000111。 在“闲扯原码、反码、补码 ”文件中,没有提到一个很重要的概 念“模” 。我在这里稍微介绍一下“模”的概念: “模”是指一个计量系统的计数范围。如时钟等。计算机也可 以看成一个计量机器,它也有一个计量范围,即都存在一个 “模” 。例如: 时钟的计量范围是 0~11,模=12。 表示 n 位的计算机计量范围是 0~2(n)-1,模=2(n)【注: 。 n 表示指数】 “模”实质上是计量器产生“溢出”的量,它的值在计量 器上表示不出来,计量器上只能表示出模的余数。任何有模的 计量器,均可化减法为加法运算。 对于计算机,其概念和方法完全一样。n 位计算机,设 n=8, 所 能表示的最大数是 11111111,若再加 1 称为 100000000(9 位), 但因只有 8 位,最高位 1 自然丢失。又回了 00000000,所以 8 位二进制系统的模为 2(8)。 在这样的系统中减法问题也可以 化成加法问题,只需把减数用相应的补数表示就可以了。 把补数用到计算机对数的处理上,就是补码。 对三种码的总结: 1、 原码为将最高位设置为符号位,正数为 0、负数为 1 2、 正数的原码、反码、补码都相同 3、 负数的反码是符号位不变、数值位按位取反 4、 负数的补码为其反码再加 1 5、 在计算机系统中都是将减法运算转换为加法运算 6、 计算机进行运算和存储时都是数据的补码
6

教师活动

学生活动

7、 在计算过程中如果最高位(符号位)产生了进位,则将进 位舍去。

〖小结〗
本节课我们学习了机器数的概念,以及原码、反码、补码 的求法。请同学们回去以后进行及时的复习,如有疑问请在课 后及时与我交流。

〖作业〗
知识点拓展提升: 1、用八位二进制表示 X=+00000000 [X]原码= X=-00000000 [X]原码= [X]反码= [X]补码= 2、 已知两个数 X、Y 的反码分别是[X] 反 码 =01101010;[Y] 反 码 =10111011;比较 X、Y 的大小。 3、计算如下习题 35-17 78-54 23-32 62-85 -90-19 -45-30 [X]反码= [X]补码=

〖教学反馈及反思〗

附:板书
原码、反码、补码 1. 机器数; 2. 机器数可分为原码、反码、补码; 原码、反码、补码的求法;

7


赞助商链接

8位补码器设计

八位补码器设计实验报告 一、功能描述将八位二进制数除最高位(符号位)取反得到反码,然后反码加一得到补码; 正数的原码、反码、补码都相同。 例如: 原码 反码 ...

若某数x的真值为-0.1010,在计算机中该数表示为1.0110,...

若某数x的真值为-0.1010,在计算机中该数表示为1.0110,则该数所用的编码为 (11) 。 A.原码B.反码C.移码D.补码_答案解析_2016年_一模/二模/三模/联考...

...(1) ,最适合表示浮点数阶码的数字编码是 (2) 。2() ...

一个正数的原码补码反码是相同的,负数则不同。下面简单介绍一下这几种码制的各自特色。 1.原码 原码是将最高位用做符号位(0表示正数,1表示负数),其余各...

32位微机原理考试重点

1,原码:0 表示 “+”,1 表示“-”,数值位与真值数值位相同。 反码:正数的反码原码表示相同。负数反码符号位为 1,数值位为原码数值各位取反。 补码:正数...

计算机组成原理复习提纲2.0

计算机组成原理复习提纲2.0 - 计算机学院 2010 级组成原理考试复习提纲 一、单项选择题(10 分) 1、原码 补码 反码 移码的定义 和 互换:已知一个数的原码,求其...

陕西科技大学科目期末考试复习陕西科技大学期末考考试...

陕西科技大学科目期末考试复习陕西科技大学期末考考试单片机重点(考试专用) - 一,原码补码反码 原码与真值的关系为 [X]原= X, 0≤X<2n 2n-1-X -2n<X...

原反补码

反码:正数的反码等于原码 [X]反=00010101 负数的反码:符号为 1,数值部分按位取反 [Y]反=11101010 补码:正数的补码等于原码 [X]补=00010101 负数的补码:符号...

组成原理实验指导书_图文

组成原理实验指导书 - 计算机组成原理仿真实验 实验指导书 主编蒋君 副主编 于启红 2010 年 4 月 实验一 数据编码 一、实验目的 掌握真值与原码反码补码...

微机原理复习题

微机原理复习题 - 复习题 第一章 3、求下列机器数的原码反码补码。 (1)01000000 (2)01111101 (3)10000010 (4)11111111 解: (1)010000...

微机复习参考_图文

微机复习参考 - 填空题,共 5 题(12 分,每空 1 分) 1.原码,补码,反码的概念及应用 对于符号数,机器数常用的表示方法有原码、反码和补码三种。数 X 的原码...