我是靠谱客的博主 酷酷电灯胆,最近开发中收集的这篇文章主要介绍算术移位和逻辑移位1.逻辑移位2.算术移位3.对网上其他说法的说明,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.逻辑移位

逻辑移位是对无符号数进行的,左移和右移都是补零

例如:0101

左移1位:1010

右移1位:0010

2.算术移位

算术移位是对有符号数进行的,符号位不变,对数值位进行移动

符号位都不变

真值码制添加代码
正数原码,反码,补码左移和右移都加0
负数原码左移和右移都加0
负数补码左移加0
负数补码右移加1
负数反码左移和右移都加1

例如:

正数    0,0110(+6)

左移1位:0,1100

左移2位:0,1000

右移1位:0,0011

右移2位:0,0001

负数    1,0110(-6原码)

左移1位:1,1100

左移2位:1,1000

右移1位:1,0011

右移2位:1,0001

负数    1,1010(-6补码)

左移1位:1,0100

左移2位:1,1000

右移1位:1,1101

右移2位:1,1110

负数    1,1001(-6反码)

左移1位:1,0011

左移2位:1,0111

右移1位:1,1100

右移2位:1,1110

3.对网上其他说法的说明

网上说逻辑左移和算术左移一样都是低位补零,逻辑右移高位补0,算术右移高位补和符号位一样的数字,这种说法是针对补码而言的。实际上由于计算机中所有数字都是以补码的形式存在,在设计cpu时设计的移位运算也是针对补码进行的,所以网上的说法是没错的。在考试做题时要分清是原码,补码,反码,负数对这三种机器数的算术移位操作是不同的,尽管实际设计硬件只实现了补码的算术移位。

最后

以上就是酷酷电灯胆为你收集整理的算术移位和逻辑移位1.逻辑移位2.算术移位3.对网上其他说法的说明的全部内容,希望文章能够帮你解决算术移位和逻辑移位1.逻辑移位2.算术移位3.对网上其他说法的说明所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部