移位运算(计算机组成原理15)

移位运算(计算机组成原理15)三种移位运算的方法:算数移位+逻辑移位+循环移位

大家好,又见面了,我是你们的朋友全栈君。

移位运算

视频链接地址:
https://www.bilibili.com/video/BV1BE411D7ii?from=search&seid=6420326887479343502

前言

在本篇中,你将掌握

  • 三种移位运算的方法:算数移位+逻辑移位+循环移位

在这里插入图片描述
对于定点数其表示有两种:无符号数和有符号数,其中有符号数又有原码、反码、补码、移码四种,本篇将学习四种码的运算。

在计算机中,使用移位便可实现 乘除法 = 移位 + 加法

1 移位运算

在这里插入图片描述

1.1 算数移位

算数移位,理解好位权和负数特殊的移位补位就可以掌握

1.1.1 原码的算数移位

在这里插入图片描述
对于原码的算数移位:
  符号位不变,数值位右移,如上图。高位补0,低位舍弃,若舍弃的位=0,则相当于 ÷ 2;若舍弃的位=1,则会丢失精度,如 2 − 1 2^{-1} 21
  符号位不变,数值位左移,同理。低位补0,高位舍弃,若舍弃的位=0,则相当于 × 2;若舍弃的位=1,则会出现严重误差(舍弃了最高位的1)

1.1.2 反码的算数移位

在这里插入图片描述
反码的算数移位,如上图,注意:
  正数的反码 = 原码,移位同原码
  负数的反码 = 原码数值位取反,负数反码移位运算规则为
    右移:高位补1,低位舍弃
    左移:低位补1,高位舍弃

1.1.3 补码的算数移位

在这里插入图片描述
  正数的补码 = 原码,移位同原码
  负数的补码 = 原码数值位取反+1,负数补码移位运算规则为
    右移:同反码,高位补1,低位舍弃
    左移:同原码,低位补0,高位舍弃

1.1.4 算数移位小结

在这里插入图片描述

  1. 正数的原码 = 补码 = 反码,补位都用0补
  2. 负数的反码 = 原码数值位取反,补码 = 原码数值位取反+1
      负数反码,补位补1
      负数补码,左移补0,右移补1

1.2 逻辑移位

在这里插入图片描述

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

1.3 循环移位

在这里插入图片描述
循环移位,二进制数在移位过程中不丢弃,像是一个队列一样头变尾或尾变头,循环移位很适合把一个数据的高低字节调换(中文字节的大端存储:高字节+低字节,小端存储:低字节+高字节)

2 小结

在这里插入图片描述
本篇重点,算数移位的具体实现步骤(三种码的补位规则)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158682.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月13日 下午9:16
下一篇 2022年7月13日 下午9:16


相关推荐

  • Enterprise Library简介

    Enterprise Library简介EnterpriseLibraryfor.NetFramework3.5–EntLibv4.1是patterns&practices小组为.NETFramework3.5开发一套企业库,目前最新版本为v4.1,共包括9个ApplicationBlock,包括数据访问(DataAccessApplicationBlock)、异常管理(Exception…

    2022年10月20日
    5
  • nginx代理转发配置

    nginx代理转发配置需求 centos 服务器 192 168 4 1docker 安装了两个 springboot 服务 192 168 8 20 168 8 21 8081 对外统一要用 192 168 4 1 xxx 去访问所有的服务案例 1 本身访问服务 2 的 url 是 192 168 8 21 ss 浏览器输入 192 168 4 1 ss 就要访问到服务 2 的转发配置 server listen80 server namelocalhos charset

    2026年3月18日
    2
  • hibernate 在tomcat7.X 下配置mysql数据源「建议收藏」

    hibernate 在tomcat7.X 下配置mysql数据源

    2022年1月21日
    41
  • QueryInterface 实现及使用的完整的例子

    QueryInterface 实现及使用的完整的例子下面我们将把前面所提到过和各代码段组合起来,以构成一个说明QueryInterface实现及使用的完整例子。总的来说可以将这些代码分成三部分。第一部分是接口IX、IY和IZ的定义部分。接口IUnknown的定义在Win32SDK的头文件1见UNKNWN.H中。第二部分是组件的实现。类CA实现了一个支持IX和IY接口的组件。QueryInterface的实现

    2022年7月22日
    9
  • 常见音频编码格式解析

    常见音频编码格式解析常见音频编码格式解析常见音频编码格式解析MP3编码格式1MP3概述2MPEG音频压缩基础3MPEGLayer3编解码的基本原理4整个MP3文件结构41ID3V242音频数据帧43ID3v1AAC编码格式1AAC概述2AAC扩展名3AAC规格4AAC特点5AAC音频格式解析51AAC音频格式有ADIFADTSLATM52ADIF和ADTS的header53ADIF和

    2022年6月26日
    39
  • java 环境配置(详细教程)「建议收藏」

    java 环境配置(详细教程)「建议收藏」文章目录前言一、jdk下载二、windows1、jdk安装2、环境变量的配置3、检测是否配置成功前言java环境配置,网上教程很多,那我为什么还要写?首先为了完善我的知识体系今后一些软件的安装教程也可能会用到想写一个更加详细的,因为这并不仅仅是写给IT行业的,其它行业可能也需要配置java环境提示:以下是本篇文章正文内容,下面案例可供参考一、jdk下载如果你电脑已经下载了jdk,那就恭喜你可以跳过这一步了jdk的下载路径:https://www.oracle.co

    2022年7月9日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号