《原码反码及补码(生用)》由会员分享,可在线阅读,更多相关《原码反码及补码(生用)(5页珍藏版)》请在金锄头文库上搜索。
1、原码、反码和补码的概念本节要求掌握原码、反码、补码的概念知识精讲数值型数据的表示按小数点的处理可分为 和 ;按符号位有 、 和 三种形式的机器数。一计算机中数据的表示方法1、数的定点与浮点表示在计算机内部,通常用两种方法来表示带小数点的数,即所谓的定点数和浮点数。定点数:是小数点在数中的位置是固定不变的数,数的最高位为符号位,小数点可在符号位之后,也可在数的末尾,小数点本身不需要表示出来,它是隐含的。缺点:只有 或 才能用定点数表示;浮点数:小数点在数中的位置是浮动的、不固定的数。一般浮点数既有整数部分又有小数部分,通常对于任何一个二进行制数,总可以表示成: PS、均为二进制数,为的 ,一般为
2、定点整数,常用补码表示,阶码指明小数点在数据中的位置,它决定 ;称为浮点数 N 的 ,一般为定点小数,常用补码或原码表示,尾数部分给出了浮点数的有效数字位数,它决定了 ,且规格化浮点数的|S| ;在计算机中表示一个浮点数其结构为:阶码部分 尾数部分阶符 阶数 尾符 尾数Ef E1E2Em Sf S1S2Sn假设用八个二进制位来表示一个浮点数,且阶码部分占 4 位,其中阶符占一位;尾数部分占 4 位,尾符也占一位。若现有一个二进制数 N(101100 )2 可表示为: 1100.1011,则该数在机器内的表示形式为:0 1 1 0 0 1 1 0 1一个浮点形式的尾数 S 若满足 0.5|S|1
3、,且尾数的最高位数为 1,无无效的 0,则该浮点数称为规格化数;规格化数可以提高运算的精度。S 为原码表示,则 S=1规格化数S 为补码表示 N 为正数,则 S1 N 为负数,则 S1二、原码、反码和补码1、机器数与真值真值:用“+” 、 “”号表示的二进制数。机器数:在计算机中数据和符号全部数字化,最高位为符号位,且用 0 表示正、1 表示负,那么把包括符号在内的一个二进制数我们称为机器数。如:将真值+11101B 表示成机器数为 B, 11101B 表示成机器数为 B。2、原码、反码和补码的概念1)概念机器数有原码、反码和补码三种表示方法。原码:是最简单的机器数表示法。其数符位用 0 表示
4、正,1 表示负,其余各位表示真值本身。1 的原码是 , 1 的原码是 。反码:正数的反码同原码,负数的反码为除符号位外,其它各位按位取反。1 的反码是 ,1 的反码是 。补码:正数的补码同原码,负数的补码为反码加 1。1 的补码是 , 1 的补码是 。2)转换方法当真值为正数时,3 种机器数的最高位均为 0,当真值为负数时该位为 1,机器数的最高位为符号位,其它位称为数值位。当真值为正数时,原码、反码和补码 ;当真值为负数时,三种机器数的符号位相同,均为 ,原码的数值位保持“原”样,反码的数值位是原码数值位的 “ ”,补码的数值位是原码的数值位的“按位取反”后再 ,简称 “ ”。例如:(1)假
5、设码长为 8 位,写出下列数的原码、反码和补码。+0、0、+1、1、+127 、 127、128真值 +0 -0 +1 -1 +127 -127 -128原码反码补码根据本题可得到结论:0 的原码、反码各有两种表示方法,而补码是唯一的全 0 表示。(2)假设码长为 8 位,写出原码、反码和补码所能表示定点整数和定点小数的范围。二进制定点整数 十进制定点整数 二进制定点小数 十进制定点小数原码反码补码由此可见:n 位的二进制数用原码表示,则可表示的数的个数为 个;n 位的二进制数用反码表示,则可表示的数的个数为 个;n 位的二进制数用补码表示,则可表示的数的个数为 个。3、算术运算计算机中的算术
6、运算一般可采用补码进行,用补码表示的两个操作数进行算术运算,符号位可直接参加运算,结果仍为补码。定点补码加法运算运算规则:x+y 补 定点补码减法运算运算规则:xy 补 y 补 的求法是将y 补 的 ,即将y 补 连同符号位一起取反加 1 便可得到y 补 。 如: y补 =10001010,则 y 补 = ; y补 =0100,则y 补 = 。注意:在进行运算时有时会发生溢出。定点补码运算的溢出处理采用补码运算时若结果的数值超出了补码所能表示的范围,则此种情况称为溢出。若计算结果比能表示的最大数还大则称为上溢,上溢时一般作溢出中断处理;若计算结果比能表示的最小数还小则称为下溢,下溢时一般作机器
7、零处理。下面介绍用双符号判断溢出方法:引入两个符号位 Cs+1、C sCs+1 用来表示两个符号位向更高位进位时的状态,有进位时 Cs+1=1,无进位时 Cs+1=0;Cs 用来表示两数值的最高位向符号位进位时的状态,有进位时 Cs=1,无进位时 Cs=0;当 Cs+1Cs=00 或 11 时,无溢出;当 Cs+1Cs=01 或 10 时,有溢出,当双符号位为 01 时正溢出,当双符号位为 10 时负溢出;例如:x 补 =10011100,y 补 =10011000,则x+y 补 = 。故溢出逻辑表达式为 V 无符号数的运算无符号数的运算实际上是指参加运算的操作数 X、Y 均为正数,且整个字长
8、全部用于表示数值部分。当两个无符号数相加时,其值在字长表示的范围内,其结果为正数。当两个无符号数相减时,其值的符号位取决于两数绝对值的大小。另外,地址在计算机中用 表示。典型例题一、选择题1、一个四位二进制补码的表示范围是( )A、015 B、-87 C、-77 D、-782、 (10 题)十进制数-48 用补码表示为( )A、10110000 B、11010000 C、11110000 D、110011113、 (09 年镇江三模)如果 X 为负数,由x 补 求-x 补 是将( )A、x 补 各值保持不变 B、x 补 符号位变反,其他各位不变C、x 补 除符号位外,各位变反,末位加 1 D、
9、x 补 连同符号位一起各位变反,末位加 1二、判断题精度。三、填空题1二进制数.011011 的规格化数为 ,二进制数11011 的规格化数为 。 (尾数、阶码均用 8 位二进制补码表示)2、已知 X、Y 为两个有符号数的定点整数,它们的补码为: x补 =00010011B,y 补 =11111001B,则X+Y补 B。原码、反码和补码的概念当堂练习一、选择题( )1、机器数 80H 所表示的真值是-128,则该机器数为 形式的表示。A、原码 B、反码 C、补码 D、移码( )2、在浮点数中,阶码、尾数的表示格式是 。A、阶码定点整数,尾数定点小数 B、阶码定点整数,尾数定点整数C、阶码定点小
10、数,尾数定点整数 D、阶码定点小数,尾数定点小数( )3、已知x 补 =10110111,y 补 =01001010,则x y 补 的结果是 。A、溢出 B、01101010 C、01001010 D、11001010( )4、某机字长 8 位,含一位数符,采用原码表示,则定点小数所能表示的非零最小正数为 。A、2 -9 B、 2-8 C、-1 D、2 -7( )5、 (08 年)下列数中最小的数是_。A10010101 原 B10010101 反 C10010101 补 D10010101 2( )6、 (12 年)8 位补码表示的定点整数的范围是 。A、-128+128 B、-128+12
11、7 C、-127+128 D、-127+127( )7、 (11 年盐城二模)已知 X 的补码为 10110100,Y 的补码为 01101010,则 X-Y 的补码为 。A) 01101010 B) 01001010 C) 11001010 D) 溢出( )8、将-33 以单符号位补码形式存入 8 位寄存器中,寄存器中的内容为( ) 。ADFH BA1H C5FH DDEH( )9、在机器数的三种表示形式中,符号位可以和数值位一起参加运算的是( )A)原码 B)补码 C)反码 D)反码、补码二、判断题( )1、16 位的补码表示的定点整数的最小值是-32768。( )2、 (10 年南京二模
12、)一个数在计算机中分别用原码、反码、补码表示时一定各不相同。( )3、 (10 年常州三模)字长相同,定点法表示数的范围比浮点法小。( )4若用八位二进制数来表示一个有符号数,则原码、反码和补码表示的数的个数与范围均相同。三、填空题1、十进制数-27 对应的 8 位二进制补码为 。2、 (11 年)已知 X、Y 为两个带符号的定点整数,它们的补码为:X 补 =00010011B,Y 补 =11111001B,则X+Y 补 = B。3、数 x 的真值为-0.1011B,其原码表示为 ,补码表示为 。4、八位定点整数,采用二进制补码表示时,所能表示真值的十进制数的范围是 。 5、(09 年) 已知
13、X 补 =01110111B,Y补 =01100010B,则X-Y 补 =_。6、 (11 年)一个含有 6 个“1” 、2 个“0”的八位二进制整数原码,可表示的最大数为 。 (用十六进制表示)7、 (12 年)已知X 补 =10000000B,则 X= B。8、 (10 年盐城二模)二进制数 10110000,若看成纯小数,且为补码,则其对应真值的十进制数是_。原码、反码和补码的概念课后练习一、选择题( )1、 (10 年盐城二模) “溢出”一般是指计算机在运算过程是产生的 _ 。A、数据量超过内存容量 B、文件个数超过磁盘目录区规定的范围C、数据超过了机器的位所能表示的范围 D、数据超过了变量的表示范围( )2、设有二进制数 X=-1101110,若采用 8 位二进制数表示,则X 补 的结果是 。A、11101101 B、100100