计算机组成原理关于of,sf,zf,cf的作用和辨别,以及有符号整数 中负数原码,反码,补码的移位表示

首先判断是有符号数还是无符号数计算:
1️⃣若为有符号数:
  1.of 可判断是否溢出。判断依据:最高位进位数和次高位进位数异或,结果为1,就发生了溢出;否则,无溢出;(这个判断有符号数计算是否溢出还挺有用)
2.sf:符号位标志,即表示结果的正负,sf等于1,表示结果是负数,否则是正数。判断依据:最高位的本位和(真的很无聊)
3.zf:表示运算结果是否全为0,zf等于1代表结果全为0,否则非0。(更无聊😐)
2️⃣若为无符号数
1.cf:判断无符号数是否溢出的就是cf,cf只能用于判断无符号数计算是否溢出的标志,即进位/借位标志,表示无符号数的加减法是否发生了进位或者借位。
cf=1,发生了借位或者进位,溢出了
cf=0,没溢出
咋算cf?判断依据:最高位产生的进位和sub(sub🟰1表示减法,sub等于0表示加法)进行异或,得到cf的值,进而判断无符号数加减法是否发生的溢出
    
(这里:多啰嗦一点,同样,还有zf这个无聊的标志也可以用于无符号数)
    
🫶🏻定点数移位:我感觉难点就在于有符号整数,特别是负数的原码、反码、补码的定点数移位,那就简单概括一下这一类,防止我忘了🤌🏼
👆🏻对于负数:
🤜原码的移位表示:算数左移,数的末尾添0;算数右移,符号位后面添0
🤜🏻反码的移位表示:首先得知道原码怎么转到反码:原码的符号位不变,其它位全部取反。那么:对于反码的移位表示:算数左移,末尾添1;算数右移,符号位后面添1。
🤜🏿补码的移位表示:首先得知道,补码怎么由原码转变成补码或者补码怎么由反码转变的,emm我写一种,方便理解,以原码转补码为例:(咸鱼学长介绍了一个比较快的转变方式):原码从右往左找到第一个1,这个1的左边数值位(除了符号位)全部取反,右边与原码保持相同,这就是补码。
补码的移位表示:算数左移,末尾添0(因为末尾与原码相同哈哈,所以也和原码的移位相同)
 算数右移,符号位后面添1(因为这部分是对原码取反得到的)

 

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值