`

逻辑位移和算术位移

阅读更多
1、
在C语言标准中,有两种位移分别为算术位移和逻辑位移。

逻辑位移:在位移运算符(>>和<<)之前的数是无符号数,编译产生的汇编指令是逻辑位移。

算术位移:在位移运算符之前的数是有符号数,编译产生的汇编指令是算术位移。

左移:两种位移都在右边补0。

右移:逻辑位移在左边补0,算术位移在左边补符号位。

2、
在C语言中,涉及位移的运算符有2个,>>表示右移,<<则表示左移。

而汇编指令中,SHL和SHR表示逻辑左移和逻辑右移,SAR和SAL表示算术左移和算术右移。

其中,逻辑左移和算术左移都是寄存器二进制位整体向左移动,并在右边补0。

而右移则不同,逻辑右移是整体向右移,并在左边补0,而算术右移则是根据原符号位的值补与其相同的值。

那么如何在C语言中分别实现逻辑和算术位移呢?根据C标准,如果在位移运算符左边的变量是有符号数,如int,char,short等,编译产生的 汇编指令是算术位移指令,如果该变量是无符号数,如unsigned int,unsigned char等,编译产生的汇编指令则是逻辑位移指令。



参考网址:
https://blog.csdn.net/qq_39979605/article/details/79855718
https://www.cnblogs.com/hnrainll/archive/2011/07/06/2099068.html
分享到:
评论

相关推荐

    汇编实验2 实验二 算术逻辑运算及移位操作

    汇编实验2 汇编语言程序设计的实验环境及上机步骤 实验二 算术逻辑运算及移位操作

    逻辑右移和逻辑右移相互转换

    检查一下年一所用的计算机系统的C编译在执行有移时是按照逻辑位移的原则,还有按照算术右移的原则。 如果是逻辑右移,请编一函数实现算术右移。 如果是算术右移,请编写一函数实现逻辑右移。

    计算机组成原理本科试题及答案

    C 16种算术运算功能和16种逻辑运算功能 D 4位乘法运算和除法运算功能 4. 存储单元是指______。 A 存放一个二进制信息位的存贮元 B 存放一个机器字的所有存贮元集合 C 存放一个字节的所有存贮元集合 D 存放两个字节...

    计算机组成原理试题及答案

    C 16种算术运算功能和16种逻辑运算功能 D 4位乘法运算和除法运算功能 4. 存储单元是指______。 A 存放一个二进制信息位的存贮元 B 存放一个机器字的所有存贮元集合 C 存放一个字节的所有存贮元集合 D 存放两个字节...

    计算机组成原理期末卷20套含答案(本科用)

    C 16种算术运算功能和16种逻辑运算功能 D 4位乘法运算和除法运算功能 4. 存储单元是指______。 A 存放一个二进制信息位的存贮元 B 存放一个机器字的所有存贮元集合 C 存放一个字节的所有存贮元集合 D 存放两个字节...

    c语言左移和右移的示例详解

    逻辑移位,简单理解就是物理上按位进行的左右移动,两头用0...(2)算术右移SAR把目的操作数的高位向低位移,空出的高位用最高位(符号位)填补。 逻辑移位指令 此组指令有:逻辑左移SHL(ShiftLogical Left)和逻辑右移SHR

    西门子PLC源码 224XP 226 STM32CPU:STM32F103RCT6(或其他STM32F103系列大容量芯片)

    西门子PLC源码 ...支持位逻辑指令、定时器/计数器指令、传送,算术运算指令、逻辑运算指令、位移指令,子程序、跳转、步进状态转移、数据转换、浮点数比较、浮点数运算指令等。 注释详尽,语句简单易懂。

    计算机组成原理期末复习题

    C 16种算术运算功能和16种逻辑运算功能 D 4位乘法运算和除法运算功能 4. 存储单元是指______。 A 存放一个二进制信息位的存贮元 B 存放一个机器字的所有存贮元集合 C 存放一个字节的所有存贮元集合 D 存放两个字节...

    计算机组成原理练习题及答案

    C 16种算术运算功能和16种逻辑运算功能 D 4位乘法运算和除法运算功能 4. 存储单元是指______。 A 存放一个二进制信息位的存贮元 B 存放一个机器字的所有存贮元集合 C 存放一个字节的所有存贮元集合 D 存放两个字节...

    计算机组成原理模拟试题

    A 16种算术运算功能B 16种逻辑运算功能C 16种算术运算功能和16种逻辑运算功能D 4位乘法运算和除法运算功能4.存储单元是指______。A 存放一个二进制信息位的存贮元B 存放一个机器字的所有存贮元集合C 存放一个字节的...

    C#中38个常用运算符的优先级的划分和理解

    在C#中,一共有38个常用的运用符,根据它们所执行运算的特点和它们的优先级,为了便于记忆,我将它们归为七个等级:1、单元运算符和括号。2、常规算术运算符。3、位移运算符。4、比较运算符。5、逻辑运算符。6、各种...

    20年春北交《计算机组成原理(专)》在线作业二.docx

    进行算术运算和逻辑运算 B.进行主存和CPU之间的数据传送 C.进行CPU和I/O设备之间的数据传送 D.改变程序执行的顺序 15.计算机的外围设备是指______。 A.除了CPU 和内存以外的其它设备 B.远程通信设备 C.输入/输出设备...

    组成原理课程设计报告-设计一台模型计算机.doc

    2&gt; 指令系统 模型机设计四大类指令共16条,其中包括算术逻辑指令〔9条、I/O指令〔4条、访内 及转移指令〔2条和停机指令〔1条。 因为指令系统共16条指令,所以操作码是4位。 由于模型机机器字长为8位,故设计单字长...

    计算机组成原理试题与答案

    C 16种算术运算功能和16种逻辑运算功能 D 4位乘法运算和除法运算功能 4. 存储单元是指______。 A 存放一个二进制信息位的存贮元 B 存放一个机器字的所有存贮元集合 C 存放一个字节的所有存贮元集合 D 存放两个字节...

    组成原理课程设计-设计一台模型计算机.doc

    2) 指令系统 模型机设计四大类指令共16条,其中包括算术逻辑指令〔9条〕、I/O指令〔4条〕、 访内与转移指令〔2条〕和停机指令〔1条〕。 因为指令系统共16条指令,所以操作码是4位。 由于模型机机器字长为8位,故...

    白中英—计算机组成原理题库 试题+答案很全20套

    C 16种算术运算功能和16种逻辑运算功能 D 4位乘法运算和除法运算功能 4. 存储单元是指______。c A 存放一个二进制信息位的存贮元 B 存放一个机器字的所有存贮元集合 C 存放一个字节的所有存贮元集合 D 存放两个字节...

    大工18秋《计算机组成原理》在线作业3-.doc

    A、算术运算 B、程序转移 C、逻辑运算 D、暂存现场数据及返回地址 第7题,程序计数器PC属于()。 A、输入输出设备 B、控制器 C、I/O接口 D、显示器 第8题,在微程序设计中,微程序存放在()中。 A、控制存储器 B、外...

Global site tag (gtag.js) - Google Analytics