当前位置:   article > 正文

简单明了的二进制移位运算符‘’<<‘’和‘’>>‘’用法_二进制 >>

二进制 >>

1、移位运算是一种二进制的运算方法。

把一个二进制数,符号位不变,其余位向左或向右移动。右移时,左侧空的数位就补符号位的数;左移时,右侧空的数位补0,溢出数位舍弃。

直接举例说明移位运算:分别举例一个正数和一个负数(为了演示方便使用8位机器码)

先定义两个十进制数值:a=5,b=-5;

十进制数值a = 5b = -5
二进制原码0000 01011000 0101
反码0000 01011111 1010
补码0000 01011111 1011

2、左移位运算符用法(<<)

对a和b分别进行左移位运算(以移动2位为例)

(1)a<<2:将0000 0101按左移位原理,得到结果为0001 0100,为正数,转原码不变,转十进制为:20;

(2)b<<2:将1111 1011按左移位原理,得到结果为1110 1100,为负数。先转码1001 0011,再+1得补码为1001 0100,转十进制为:-20;

3、右移位运算符的用法(>>)

对a和b分别进行右移位运算(以移动2位为例)

(1)a>>2:将0000 0101按右移位原理,得到结果为0000 0001,为正数,转原码不变,转十进制为:1;

(2)b>>2:将1111 1011按右移位原理,得到结果为1111 1110,为负数。先转码1000 0001,再+1得补码为1000 0010,转十进制为:-2;

4、注意:

(1)正数的原码、反码和补码相等;负数的补码为原码取反后+1;

(2)关于补码:

取反加一,并不是补码的定义;补码,是一个“代替负数运算的”的正数。

借助于补码,减法,就可以用加法代替。利用补码,统一了加减法,目的是简化计算机的硬件。

关于为什么正数(补码)能够代替负数,可以用十进制来说明:

如果限定仅用 2 位 10 进制数,可以有:

24 - 1 = 23

24 + 99 = (一百) 23

仅仅保留 2 位数,就必须舍弃进位,此时,+99 就和-1 就是等效的:

+99,就称为-1 的补数;

+98,是-2 的补数;

......

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号