计算机组成原理重要知识点摘录(考研用)——第二章:数据的表示和运算

计算机组成原理重要知识点摘录(考研用)——第二章:数据的表示和运算

 本文参考于《2021年计算机组成原理考研复习指导》(王道考研),《计算机组成原理》

  • (2)十进制数转换为任意进制数
      采用基数乘除法,这种转换方法对十进制数的整数部分和小数部分分别进行处理,对整数部分用除基取余法,对小数部分用乘基取整法,最后将整数部分与小数部分的转换结果拼接起来。
      除基取余法(整数部分的转换):整数部分除基取余,最先取得的余数为数的最低位,最后取得的余数为数的最高位(除基取余,先余为低,后余为高,因为后余乘以基数的幂次更高),商为0时结束
      例:将(123.6875)10转换为二进制
      整数部分:
    在这里插入图片描述
      (123)10=(1111011)2
      乘基取整法(小数部分的转换):小数部分乘基取整,最先取得的整数为数的最高位,最后取得的整数为数的最低位(乘积取整,先整为高,后整为低,因为后整要除以更多基数的幂次) ,乘积为1.0或满足精度要求时结束
      小数部分:
    在这里插入图片描述
      (0.6875)10=(0.1011)2
      所以,(123.6875)10=(1111011.1011)2

  在计算机中,小数和整数不一样,整数可以连续表示,但小数是离散的(二进制表示小数时只能用1/(2n)的和的任意组合表示),所以并不是每一个十进制小数都可以准确地用二进制表示。但任意一个二进制小数都可用十进制小数表示。


  真值0的原码表示有正0和负0两种形式。[+0]=0 0000和[-0]=1 0000

  对于纯小数的补码,若字长为n+1,补码的表示范围为-1~1-2-n(比原码多表示-1)

  对于纯整数的补码,若字长为n+1,补码的表示范围为-2n~2n-1(比原码多表示-2n

真值0的补码表示是唯一的。即[+0]=[-0]=0.0000,由定义得[-1]=10.0000-1.0000=1.0000,对于小数,补码比原码多表示一个-1(这是因为补码中的0只有1种表示形式,故它能比原码多表示一个-1)。对于整数,[-8]=10000-1000=1000,补码比原码多表示一个-2n(因为补码没有负0,故诸如10000000这样的数表示的是8位补码的最小数-128)

  • 补码的算术移位
      将[x]的符号位与数值位一起右移一位并保持原符号位数值不变,可实现除法功能(除以2)。

  模4补码双符号位00表示正,11表示负,用在完成算术运算的ALU部件中

  (4)移码表示法
  能直接从移码形式判断其真值的大小,又因为检验移码的特殊值较容易,因此移码常用来表示浮点数的阶码。它只能表示整数。
  移码就是在真值X上加上一个常数(偏置值),通常这个常数取2^n,相当于X在数轴上向正方向偏移了若干单位。

  • 一个真值的移码和补码仅差一个符号位,[x]的符号位取反即得[x](1正0负,与其他机器数符号位取值正好相反),反之亦然

  • 移码全0时,对应真值的最小值-2^n;移码全1时,对应真值的最大值
    2 ^ n-1

  • 移码保持了数据原有的大小顺序,移码大真值就大,移码小真值就小

  二进制表示的机器数在相对于小数点作n位左移或右移时,其实质就是该数乘以或除以2^n
  移位运算根据操作对象的不同分为算术移位和逻辑移位。有符号数的移位称为算术移位,逻辑移位的操作对象是逻辑代码,可视为无符号数

  • (1)算术移位
      算术移位的对象是有符号数,在移位过程中符号位保持不变
      对于正数,由于[x]=[x]=[x]=真值,因此移位后出现的空位均用0填充。对于负数,由于原码、补码、反码的表示形式不同,因此当机器数移位时,对其空位的填补规则也不同。(不论是正数还是负数,移位后其符号位均不变,且移位后都相当于对真值补0,根据补码、反码的特性,在负数时填充代码有区别)
      对于原码,左移一位若不产生溢出,相当于乘以2,右移一位,若不考虑因移出而舍去的末位尾数,相当于除以2。
      不同机器数算术移位后的空位填补规则为:
    在这里插入图片描述
      负数的原码数值部分与真值相同,在移位时只要使符号位不变,其空位均填0;负数的反码各位除符号位外与负数的原码正好相反,因此移位后所填的代码应与原码相反,即全部填1。
      在由原码得补码的过程中(由高位到低位找到最后一个1后,后面的照抄),当对其由低位向高位找到第一个1时,在此1左边的各位均与对应的反码相同,在此1右边的各位(包括1在内)均与对应的原码相同。因此负数的补码左移时,因空位出现在低位,填补的代码与原码相同,即填0;右移时空位出现在高位,填补的代码与反码相同,即填1。

  • (2)逻辑移位
      逻辑移位将操作数视为无符号数,逻辑左移时,高位移丢,低位填0,右移时,低位移丢,高位填0;逻辑移位不管是左移还是右移,都填0;

  • (3)循环移位
      循环移位分为带进位标志位CF的循环移位(大循环)和不带进位标志位的循环移位(小循环)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

happy19991001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值