2021-11-24 位运算符(<<,>>和>>>)介绍

0.什么是位移运算符?

位移运算符按照平移的方向和填充数字的规则分为三种:
* << 带符号左移运算符
* >> 带符号右移运算符
* >>> 不带符号右移运算符

1…左移运算符
定义

就是按照二进制的形式,把所有的数字向左移动对应的位数,高位移出,低位补零

语法
[需要移位的数字]<<移位的次数
示例
3<<2

意思是把数字3的二进制形式,向左移动两位数,
形成的新二进制对应的数字就是运算的结果

运算过程
  • step1:把3转换成二进制数字即0000 0011
  • step2:把该数字高位(即左侧)的两个0移出,并在低位(即右侧)补零
  • step3:形成的新二进制数字是0000 1100,再转换成十进制数字是12,即运算结果
规律

在没有数字溢出的前提下,对于正数和负数,
左移一位相当于乘以2的1次方,左移n位相当于乘以2的n次方

即:

1<<3这个表达式等于1*2^3=8
2<<这个表达式等于2*2^3=16

验证:

1==>0000 0001==>0000 1000==>8
2==>0000 0010==>0001 0000==>16
2.右移运算符
定义

按照二进制的形式,把所有的数字向右移动对应位数,然后
低位移出,高位补符号位(正数补0,负数补1)

语法:
[需要移位的数字]>>[移位的次数]
示例
示例1
11>>2
过程
 11==>0000 1011==>0000 0010==>2
示例2
 100>>3
过程:
100=64+32+4=2^6+2^5+2^2==>0011 0100==>0000 0110==>3
规律

右移一位相当于除2, 右移n位相当于除以2的n次方

3.无符号右移运算符
定义

按照二进制的规则,把所有的数字向右移动对应的位数,然后低位移出,高位补0,
对于正数来说与带符号右移相同,对于负数来说不同

示例
null/undefined/NaN>>>0 输出0
1>>>0 输出1
1>>>0 输出4294967295
解释
null/undefined/NaN等非值的位运算,统一返回0
若对于一个负数进行的>>>无符号位移运算符,需要将
负数的二进制码右移,再用0补上,最后返回一个很大的正整数

`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端OnTheRun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值