1 进制转换
二进制与十进制之间
2 求原码 反码 补码
三者特殊情况 +0 -0补码反码是否一样

为什么用补码运算? 简化运算器设计
正负数补码运算
判断是否有溢出
1
2
3
x+y的补
x-y的补
定点数的 + -法
2.1 原码
整数

x 为真值
n 为整数的位数
用 逗号 将符号位 和数值部分隔开

用 小数点 将符号位和数值部分隔开
二进制原码表示规则:
1. 符号位:用0表示正号+,用1表示负号- ;
2. 数值位:数值位不变,与真值的数值位保持一致。
例 1 已知 [x]原 = 1.0011 求 x
例 2 已知 [x]原 = 1,1100 求 x
例 3 已知 [x]原 = 0.1101 求 x
例 4 求 x = 0 的原码
2.2 补码
正数的补数即为其本身
补码定义

求补码的快捷方式
当真值为负时:
1.符号位不变
2.数值位,每位取反,末位加1
例 5 已知 x =-122 求 [x]补

已知补码求原码
当真值为负时:
符号位不变
数值位,每位取反,末位加 1
补码加法(正负数补码运算)

在模2的n次方+1的意义下,任意两数的补码的和, 等于这两个数之和的补码。
【例1】 x=+1011 , y=+0101 , 求 x+y=?

【例2】: x=+1001 , y=-0101 , 求 x+y=?

补码加法特点:
-
符号位作为数的一部分参加运算
-
超过2n+1的进位要丢掉。
补码减法(正负数补码运算)

-y\]补 的定义 :对\[y\]补**包括符号位**逐位**取反** ,最后**末位加1**,  【例1】:已知x1=-1110 , x2=+1101 , 求: \[x1\]补 , \[-x1\]补 , \[x2\]补 , \[-x2\]补 。  【例2】x=+1101 , y=+0110 , 求 x-y=?  例 设机器数字长为 8 位(含 1 位符号位), 且 A = 15, B = 24,用补码求 A + B和 A -- B  #### 判断溢出 (1) 一位符号位判断溢出(根据SA、SB和Sf的关系) (2) 硬件判断逻辑二 (根据Cf与C的关系) (**3) 硬件判断溢出逻辑三(从双符号位)**   ### 2.3 反码   例8 已知 \[x\]反 = 0,1110 求 x 例9 已知 \[x\]反 = 1,1110 求 x ### 2.4 三种机器数的小结 最高位为符号位,书写上用","(整数)或"."(小数)将数值部分和符号位隔开 对于正数,原码 = 补码 = 反码 对于负数 ,符号位为 1,其 数值部分 原码与真值的数值位保持系统 反码:原码除符号位外每位取反 补码:原码除符号位外每位取反末位加 1 ### 2.5 移码  移码在数轴上的表示:等价于将x正向平移或者增加**2的n次方** **移码的符号位不在表示 符号,而是表示数值;** **移码没有负数。** **** **移码的特点:** ****  ## 3 浮点数形式 尾数 + 阶码(用什么表示:移码 为什么?为比较两个数的指数大小) 不靠+ - 法 IED 754标准:-127 ### 3.1 浮点表示 浮点表示中,小数点的位置可按需浮动。  **格式模型** **** jf 代表阶码的符号 Sf 代表浮点数的符号 m 其位数反映浮点数的表示范围 n 其位数反映浮点数的精度 jf 和 m 共同表示小数点的实际位置 **引入浮点数的意义** **相同字长时,浮点数的表示范围更大、 精度更高!** 【例】 设机器数字长为 24 位,欲表示±3万的十进制数,试问在保证数的最大精度的前提下,除阶符、数符各 取1 位外,阶码、尾数各取几位?  ### 3.2 IEEE 754 标准 有**32位**浮点数(单精度)和**64位**浮点数(双精度) #### 32位浮点数  S=浮点数的符号位, 0表示正数, 1表示负数; E=阶码, 8位,采用移码表示, 阶符隐含; M=尾数, 23位,纯小数表示,且真值=1+M; 阶码E采用移码形式,但只偏移27-1 (不是27)  #### 64位浮点数  阶码, 11位 尾数, 52位 对阶码E编码时,只偏移210-1 (标准移码偏移210);  【例1】若浮点数x的754标准存储格式为(41360000)16, 求其浮点数的十进制数值。  【例2】将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。  【例3】设机器字长16位,采用定点表示法 (1) 定点原码整数表示时,最大正数是多少?最小负数是多少?  (2) 定点原码小数表示 ,最大正数是多少?最小负数是多少? 