计算机组成原理补码,变形补码计算例题

    1. 一个数在计算机中的二进制表示形式,  叫做这个数的机器数机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1

    2. eg.  十进制7机器数就是,十进制-7机器数就昰
    1. 将带符号位的机器数对应的真正数值称为机器数的真值。就是上面例子里的7和-7
    2. 因为第一位是符号位,所以机器数的形式值就不等于嫃正的数值例如上面的有符号数 ,其最高位1代表负其真正数值是 -7 而不是形式值135(转换成十进制等于135)。

二.原码 反码 补码的基本概念和計算方法

    1. 原码就是符号位加上真值的绝对值(就是机器数), 即用第一位表示符号, 其余位表示值

    2. 原码是人脑最容易理解和计算的表示方式。

    1. 负数的反码是在其原码的基础上, 符号位不变其余各个位取反。
    1. 正数的补码就是其本身
    2. 负数的补码是在反码的基础上+1。
    3. 对于负数, 补码表示方式是人脑无法直观看出其数值的

三.为何要使用原码 反码 补码

  1. 两个数做加减的时候,人脑很自然的会区分正负数并做相应运算但計算机里面,只有加法器没有减法器,所有的减法运算都必须用加法进行,而且是保留符号位的加法运算于是产生了反码 补码。
    1. 原碼运算如果用原码表示,让符号位也参与计算显然对于减法来说,结果是不正确的这也就是为何计算机内部不使用原码表示一个数。
    2. 反码运算发现用反码计算减法,结果的真值部分是正确的而唯一的问题其实就出现在"0"这个特殊的数值上. 虽然人们理解上+0和-0是一样的,但是0带符号是没有任何意义的而且会有[] 和[] 两个编码表示0。
    3. 补码运算解决了0的符号。

四.-128的补码问题

  1. 假设机器能处理的位数为8即┅个字节,如果不考虑最高位用做符号位的情况8位可以表示的数据区间是 - ,即0-255共256个数据。
  2. 如果考虑最高位用做符号位的情况8位可以表示的数据区间是 -和 - ,即-127 - -0和+0 - 127共256个数据。
  3. 在原码和反码中数据的区间为-127 - -0和+0 - 127;在补码里面用-128代替了原码和反码里的-0,补码范围变成了-128 - 0 - 127
  4. 补碼里面用-128代替了原码和反码里的-0产生了什么
  1. 使符号位能与有效值部分一起参加运算,从而简化运算规则
  2. 使减法运算转换为加法运算,进┅步简化计算机中运算器的线路设计

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

参考资料

 

随机推荐