当前位置: 首页 > news >正文

计算机组成原理——第二章(11)

这个小节我们讲一下定点数的移位运算,包括原码、反码、补码的移位运算,还有逻辑移位和循环移位是如何运算的

定点数的移位运算

1.算数移位

1.1原码

原码的算数移位——符号位保持不变,仅对数值位进行移位。记住是数值位,假设是对12.3的右移,那么就是把数值位右移,相对来说就是小数点左移,变成1.23。

需要注意的是,有人会把右移或者左移看成是乘法或除法,其实这是不对的,我们举个例子,二进制1,0000101  为-5D,右移之后为1,0000010 为-2D,按理来说应该是-2.5D,但是结果是-2D,丢失精度

还有一个例子1,1010000 为-80D左移一位之后为1,0100000 为-32D,按理来说左移是*2但是出现了严重误差

所以做题的时候还是按照数值位移,再转进制,安全保险一点

1.2反码

因为正数的反码和原码相同,因此正数反码的移位运算也和原码相同

右移:高位补0,低位舍弃

左移:低位补0,高位舍弃

负数的反码数值位于原码相反

右移:高位补1,低位舍弃

左移:低位补1,高位舍弃

1.3补码

正数的补码与原码相同,因此正数补码的移位运算也和原码相同

右移:高位补0,低位舍弃

左移:低位补0,高位舍弃

负数的补码运算,以最右边的1为分界线,左移之后右边都补0,右移之后左边都补1

右移(同反码):高位补1,低位舍弃

左移(同原码):低位补0,高位舍弃

总结如下:

2.逻辑移位

逻辑移位比较简单,我们可以把逻辑移位看出“无符号数”的算数移位

逻辑右移:高位补0,低位舍弃

逻辑左移:低位补0,高位舍弃

 逻辑移位应用举例

比如我们要存储一种颜色,大家都知道颜色是由RGB调整来的,我们要存这样的一种颜色

用3B存储无符号数102,并且逻辑左移16位

 

然后用3B存储无符号数139,并逻辑左移8位

 

然后用3B存储无符号数139

 

把三个得到的结果相加得3B的RGB值

 

3.循环移位

 循环移位就是把挤出来的数字放到空出来的位置

这里要分成两类:带进位位的循环移位和不带进位位的循环移位

不带进位位:用移出的位补上空缺

带进位位:移出的位放到进位位,原进位位补上空缺

其实这两种处理方式是一样的,都是移了之后移出的位补上空缺

 例如不带进位位的循环左移:10110101,左移之后出来的1补到最低位

带进位位的循环左移:1,10110101,左移之后出来的1补到最低位

 

 

 思维导图

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 深圳水务展|2025深圳国际水务科技博览会
  • 【人工智能】边缘计算与 AI:实时智能的未来
  • 两个方法 搞定伦敦金涨跌预测
  • Java设计模式之工厂模式
  • 【iOS】SideTable
  • SQL Server 临时存储过程及示例
  • 私域成交的关键点
  • JVM(九)深入解析Java字节码技术与执行模型
  • 前向声明的意义
  • 第R1周:RNN-心脏病预测
  • 如何提前预防网络威胁
  • 【简历】湖南某二本学院:Java简历指导,简历通过率接近于0
  • java使用opencv
  • vue3+gsap实现圆形路径动画
  • 【设计模式入门】设计模式全解析:23种经典模式介绍与评级指南(设计师必备)
  • .pyc 想到的一些问题
  • 【5+】跨webview多页面 触发事件(二)
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Create React App 使用
  • DataBase in Android
  • django开发-定时任务的使用
  • JS笔记四:作用域、变量(函数)提升
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • laravel 用artisan创建自己的模板
  • nfs客户端进程变D,延伸linux的lock
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Web设计流程优化:网页效果图设计新思路
  • 看域名解析域名安全对SEO的影响
  • 新书推荐|Windows黑客编程技术详解
  • 自制字幕遮挡器
  • nb
  • linux 淘宝开源监控工具tsar
  • Mac 上flink的安装与启动
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • # 计算机视觉入门
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #Java第九次作业--输入输出流和文件操作
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (C语言)球球大作战
  • (day18) leetcode 204.计数质数
  • (ZT)一个美国文科博士的YardLife
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (三)模仿学习-Action数据的模仿
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)