逻辑移位,简单理解就是物理上按位进行的左右移动,两头用0进行补充,不关心数值的符号问题。

算术移位,同样也是物理上按位进行的左右移动,两头用0进行补充,但必须确保符号位不改变。

算术移位指令

算术移位指令有:算术左移SAL(ShiftAlgebraic Left)和算术右移SAR(ShiftAlgebraic Right)。算术移位指令的功能描述如下:

(1)算术左移SAL把目的操作数的低位向高位移,空出的低位补0;

(2)算术右移SAR把目的操作数的高位向低位移,空出的高位用最高位(符号位)填补。

逻辑移位指令

此组指令有:逻辑左移SHL(ShiftLogical Left)和逻辑右移SHR(ShiftLogical Right)。逻辑左移/右移指令只有它们的移位方向不同,移位后空出的位都补0。

结论:不管是否有无符号类型,也不管值的正负,均采用的是逻辑左移。

结论:说明只要是有符号数,不管值是正还是负,右移时采用的都是算术右移。

疑问:按照移位补0的原则,为何左移都是逻辑移位呢?

答疑:先看看“-8”和“8”在计算机内存中的值分别是:

0xfffffff8

0x8

由于计算机均按补码保存数值,所以不管符号正负,左移对于符号位并不产生影响,而右移则就不同了,无符号数怎么右移都不影响符号位,但是有符号数逻辑右移时高位补0将改变符号位,所以只能采用算术右移。

到此这篇关于c语言左移和右移的示例详解的文章就介绍到这了,更多相关c语言左移和右移内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

C语言向右移三个字母怎么做,c语言左移和右移的示例详解相关推荐

  1. php中左移和右移,c语言左移和右移的示例详解

    逻辑移位,简单理解就是物理上按位进行的左右移动,两头用0进行补充,不关心数值的符号问题. 算术移位,同样也是物理上按位进行的左右移动,两头用0进行补充,但必须确保符号位不改变. 算术移位指令 算术移位 ...

  2. 36.深度解密三十六:网络舆情监测之另类“免费监测”方法详解

    网络营销推广技术.技巧深度解密(三十六)指南: 1.本文档适合零基础以及互联网营销推广工作者,主要讲解免费网络舆情监测的问题. 2.原创版权文档,任何抄袭或者全部.部分模仿都是侵权行为. 3.敬畏法律 ...

  3. java网络编程阻塞_Java网络编程由浅入深三 一文了解非阻塞通信的图文代码示例详解...

    本文详细介绍组成非阻塞通信的几大类:Buffer.Channel.Selector.SelectionKey 非阻塞通信的流程ServerSocketChannel通过open方法获取ServerSo ...

  4. 考研数学一数学二数学三真题1987年-2021年所有历年真题及详解

    考研数学一网盘链接:https://pan.baidu.com/s/1cMDYFlHI6YZ83KfbDDyExA  提取码:6666 考研数学二真题1987年-2021年所有真题及详解链接:http ...

  5. go语言字符串换行_Go语言中的字符串处理方法示例详解

    1 概述 字符串,string,一串固定长度的字符连接起来的字符集合.Go语言的字符串是使用UTF-8编码的.UTF-8是Unicode的实现方式之一. Go语言原生支持字符串.使用双引号(" ...

  6. P1P2P3口接24个灯流水的c语言代码,第三章单片机并行口c语言程序设计.ppt

    第三章单片机并行口c语言程序设计 3.1 80C51的并行口结构与应用 3.1.1 P0口.P2口的结构 1.P0口作通用的I/O口使用. 这时,CPU发来的"控制"信号为低电平, ...

  7. 三位数组的轴python_关于numpy数组轴的使用详解

    概述 按照图一中aixs=0,对aixs=0上下对应的数据进行相加在学习numpy的时候,最难理解的就是轴的概念,我们知道坐标系中有轴的概念,那么两个轴是否有关联呢?为了便于理解,特写此博客进行梳理. ...

  8. C语言学习5:机器数、真值、原码、反码和补码详解

    目录 1.前言 2.机器数 3.真值 4.原码 5.反码 6.补码 1.前言 上篇博文中,笔者介绍了计算机存储器存储容量大小的常用单位 .在未来,我们还会接触到各种各样的数据类型,并且这些数据在运算的 ...

  9. c 语言中双向链表逆转编程题,C/C++ 双链表之逆序的实例详解

    C/C++ 双链表之逆序的实例详解 一.结点结构 双向链表的数据结构定义如下: typedef struct node { ElemType data; struct node *prior stru ...

最新文章

  1. EFI Shell 命令参考
  2. 从贫民到百万富翁转变的心理学基础
  3. 计网 - 传输层协议 TCP:TCP 为什么握手是 3 次、挥手是 4 次?
  4. win7系统安装信息服务器不可用怎么办,win7系统提示rpc服务器不可用怎么办
  5. OpenGL GLSL Shader Subroutines函数的实例
  6. 测试计算机操作基础知识,计算机病毒基础知识测试
  7. springboot创建项目
  8. python logger设置信息取得_shell 脚本中如何获取 python logging 打印的信息?
  9. 剑指offer--面试题13
  10. 未指定的IO标准导致vivado生成bit文件报错
  11. php开发实例大全pdf百度云盘_互联网大厂 主要使用哪些开发语言
  12. 浅谈axios.interceptors拦截器
  13. 【c++基础】菱形继承问题
  14. [资讯]北京二套学区房奋斗目标
  15. 用计算机计算三角函数角度,角度计算器
  16. javascript与Jscript区别
  17. Python做一个“盯盘机器人”,实时监控股票价格并通知你!
  18. To invoke and to begin invoke, that is a question.
  19. hdu6638 Snowy Smile (最大权值和矩阵、线段树)
  20. 基于NeRF的APP上架苹果商店!照片转3D只需一部手机,网友们玩疯了

热门文章

  1. 《麻省理工斯隆商学院过程咨询课II》
  2. Nginx配置使用详解
  3. Spire.PDF for.NET 去水印方法 及用法示例
  4. 工艺品娃娃有哪些类型?
  5. 基于ASP.net的教学平台/在线学习平台
  6. JDBC:你总得学着去连接数据库!
  7. Raspberry Pi 与Arduino SPI通信
  8. POJ P1821 Fence
  9. linux轻量级 区别,尝试了几款轻量级的linux!
  10. 无法安装Hyper-V:虚拟机监控程序已在运行中的详细解决思路