带符号数的移位操作

2023-05-16

算数移位时应保持数的符号位不变,数值的大小则要发生变化。左移一位相当于该数乘以2,右移一位相当于该数除以2。

移位运算有算数移位、逻辑移位和循环移位一共3类,每种移位有左移和右移之分。

 

1. 算数移位

算数移位的对象是带符号数,在移位的过程中**必须保持操作数的符号不变**。左移一位时如果不产生溢出,则数值乘以2;右移一位时,

1.1 原码移位规则

不论正数还是负数,在左移或者右移时,符号位均不变,空出的位置一律以“0”补入。

负数的源码移位前后的 结果如下:

左移:移位前有   1 X_1X_2...X_{n-1}X_{n}

           移位后有   1 X_2X_3...X_{n}0           

右移:移位前有   1 X_1X_2...X_{n-1}X_{n}

           移位后有   10X_1...X_{n-2}X_{n-1}

1.2 补码移位规则

(1)正数

符号位不变,不论左移或右移,空出的位置一律以“0”补入

(2)负数

 左移:移位前有   1 X_1X_2...X_{n-1}X_{n}

            移位后有   1 X_2X_3...X_{n}0           

右移: 移位前有   1 X_1X_2...X_{n-1}X_{n}

            移位后有   11X_1X_2...X_{n-2}X_{n-1}

2. 逻辑移位

逻辑移位的对象是无符号数,因此移位时不需要考虑符号问题。

逻辑左移时,高位移丢,低位填“0”;逻辑右移时,低位移丢,高位填“0”

3. 循环移位

循环移位按是否与进位位一起移位又可分为两种:不带进位位的小循环、带进位位的大循环

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带符号数的移位操作 的相关文章

随机推荐

  • K210模型训练(物体分类)

    目录 一 打开Maix IDE 的官网找到需要训练模型的平台Maix Hub 模型训练的分类 xff1a 二 如何使用Maix Hub模型训练平台 数据集的采集 三 训练模型后的文件分类 一 打开Maix IDE 的官网找到需要训练模型的平
  • Openstack Swift 安装部署总结

    环境 硬件 这里只使用了一台服务器 xff0c 既作为Controller Node xff0c 也作为Storage Node 主机名IPOS磁盘文件系统sf dev10 202 127 4Centos 7 4 dev sdb dev s
  • 针对于esp8266-01的刷AT固件

    目录 1 esp8266 01的结构与引脚分布 1 1对应各引脚的功能分布 2 如何与USB转TTL接线进行刷固件 3 使用 FLASH Download Tool刷固件 3 1打开该文件 3 2按照此选项进行选择 3 3接着进行选择 3
  • 阿里云物联网平台如何进行云产品流转

    一 什么是云产品流转 简单来说就是如何将数据从这个设备发送到另一个设备中 二 如何在同一产品上的俩个设备之间进行数据转移 1 创建一个产品 xff0c 并添加两个设备 可以看到RP DPJ 与RP WX 都是属于RP WXX 产品上的俩个设
  • 本地包含与远程包含

    注意 xff1a 仅用于本人学习的笔记记录 xff0c 禁止进行传播分享 xff0c 一旦造成严重后果与本人无关 xff01 xff01 xff01 一 什么是文件包含漏洞 文件包含 xff1a 就是去其他的php文件读取源码来运行 xff
  • Linux下的shell

    NC反向shell 1 查看shell类型 echo SHELL chsh s 需要修改shell的类型 cat etc shells 查看存在哪些shell 然后反弹对应的shell xff08 正向连接 xff09 被控制端 nc lv
  • 单片机之步进电机驱动篇(一)

    步进电机的简介 xff1a 步进电机是一种将电脉冲转化为角位移的执行机构 当步进电机驱动器接收到一个脉冲信号 xff0c 它就驱动步进电机按设定的方向转动一个步距角 通过控制脉冲来控制角位移量 xff0c 也可以实现对电机的加减速和正反转的
  • ROS使用Python编写的步骤

    第一步 xff1a 和C 43 43 编写一样 xff0c 配置好工作空间 第二步 xff1a 在功能包下面建立一个scripts文件夹 第三步 xff1a 在scripts文件里面建立一个 py文件 第四步 编写python文件 注意 x
  • 解决js脚本加载失败的问题

    当我们在运行某一个项目时 xff0c 它的某些JavaScript脚本可能加载不出来 xff0c 报错 像现在单页界面应用基本上都是通过js来构建 xff0c 一旦加载不出 xff0c 这个项目就不能运行了 xff0c 那怎么办 xff1f
  • 能在 Switch 中使用 String 吗?

    答 xff1a 从 Java 7 开始 xff0c 我们可以在 switch case 中使用字符串 xff0c 但这仅仅是一个语法糖 内部实现在 switch 中使用字符串的 hashCode 补充 xff1a 在JDK7以前 xff0c
  • C语言基础编程练习(精选例题+题解)

    目录 1 求最大公约数和最小公倍数 2 打印图形 3 质数因子 4 数字排序 5 十进制数转换为八进制数 xff08 进制转换 xff09 6 寻找完数 1 求最大公约数和最小公倍数 题目描述 xff1a 输入两个正整数m和n xff0c
  • 判断字符向量是否为回文

    回文是指正读反读均相同的字符序列 xff0c 如 34 abba 34 和 34 abdba 34 均是回文 xff0c 但 34 good 34 不是回文 试写一个算法判定给定的字符向量是否为回文 xff08 提示 xff1a 将一般字符
  • 【matlab】记一次微信聊天文字记录导出到Excel工作

    其实一直想把我和她的微信聊天记录导出到文本 xff0c 整理出来拿出来翻翻 xff0c 然后再查阅了大量网络资料后 xff0c 我成功的将我和她的聊天记录整理成excel的形式 xff0c 如下所示 xff1a 那么我们开始 一 工具准备
  • C语言实现选择排序算法

    选择排序 算法步骤 1 从0索引开始 xff0c 跟后面的元素一一比较 2 小的放前面 xff0c 大的放后面 3 第一次循环结束后 xff0c 最小的数据已经确定 4 第二次循环从一索引开始以此内推 整体代码块在最下方 xff0c 有需要
  • DVWA靶场搭建

    1 靶场是什么 xff0c 靶场的搭建 在学习web安全的过程中 xff0c 靶场是必不可少的 xff0c 毕竟在计算机界 xff0c 任何理论知识都不如实操 靶场就是人为提供的带有安全漏洞的服务 xff0c 每一个学习者都可以在本地快速搭
  • 用HTML+bootstrap制作个人简历

    用HTML bootstrap制作个人简历 nbsp index html lt DOCTYPE html gt lt html lang en gt lt head gt lt meta charset UTF 8 gt lt meta
  • 蓝桥杯单片机比赛学习:6、中断系统之定时器中断的基本原理

    上节我们讲了中断的外部中断 xff0c 基本的了解了一下中断 xff0c 这一节我们继续来学习中断系统的定时器中断基本原理 xff0c 本节很重要 无论是在比赛中还是在单片机 嵌入式等的学习上都有着很重要的地位 如对本作者有兴趣可以去我主页
  • 关于本地离线API文档大全-Zeal的下载以及使用

    目录 1 先进zeal官网进行下载对应的版本 2 进入点击edit gt preferents 在directory中设置存放文档的地址 3 进入下面的网址 xff0c 按ctrl 43 f查找所需的语言后复制name属性的值 4 下载文档
  • Vue使用Element Plus

    安装 Element Plus 安装组件 npm install element plus save 在main ts中导入UI 导入饿了么UI组件 import ElementPlus from 39 element plus 39 im
  • 带符号数的移位操作

    算数移位时应保持数的符号位不变 xff0c 数值的大小则要发生变化 左移一位相当于该数乘以2 xff0c 右移一位相当于该数除以2 移位运算有算数移位 逻辑移位和循环移位一共3类 xff0c 每种移位有左移和右移之分 1 算数移位 算数移位