JavaScript赋值运算符之左移位,右移位,无符号右移位的区别

因为数据在计算机存储的时候是用补码存储,所以注意区分正数和负数的区别。一共32位。

一、左移位并赋值(<<=)正数负数都是右边补0

  • 例如:

        a=9 ,b=2;a<<=b

       输出结果:a=36;b=2

  • 原因:

          9的二进制是1001,向左移动两位,是100100,再转换为十进制数是36

          a<<=b相当于a=a<<b

          所以:a=36,b=2


二、右移位并赋值(>>=)  正数左边补0,负数左边补1

  • 例如:

           a=-9 ,b=2;a>>=b

         输出结果:a=-3;b=2

  • 原因:

         -9的二进制是0111,向右移动两位,是1101,再转换成真值(减1取反)0011,再转换为十进制数是-3

          所以:a=-3,b=2


三、无符号右移位并赋值(>>>=)  不管正负都是左边补0

  • 例如:

           a=-9 ,b=2;a>>>=b

         输出结果:a=1073741821;b=2

  • 原因:

         -9的二进制是11111111 11111111 111111111 11110111(32位),向右移动两位,是00111111 11111111 111111111 11111101,再转换为十进制数是1073741821

          所以:a=1073741821,b=2

 

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JavaScript 中的赋值运算符有以下几种: 1. 等号赋值运算符(=):将右侧的值赋给左侧的变量。 2. 加等于赋值运算符(+=):将右侧的值加到左侧的变量上,并将结果赋给左侧的变量。 3. 减等于赋值运算符(-=):将右侧的值从左侧的变量中减去,并将结果赋给左侧的变量。 4. 乘等于赋值运算符(*=):将右侧的值乘以左侧的变量,并将结果赋给左侧的变量。 5. 除等于赋值运算符(/=):将左侧的变量除以右侧的值,并将结果赋给左侧的变量。 6. 取模等于赋值运算符(%=):将左侧的变量对右侧的值取模,并将结果赋给左侧的变量。 7. 左移等于赋值运算符(<<=):将左侧的变量向左移动右侧的数,并将结果赋给左侧的变量。 8. 右移等于赋值运算符(>>=):将左侧的变量向右移动右侧的数,并将结果赋给左侧的变量。 9. 无符号右移等于赋值运算符(>>>=):将左侧的变量向右移动右侧的数,无符号地填充左侧的变量,并将结果赋给左侧的变量。 10. 按与等于赋值运算符(&=):将左侧的变量与右侧的值进行按与操作,并将结果赋给左侧的变量。 11. 按异或等于赋值运算符(^=):将左侧的变量与右侧的值进行按异或操作,并将结果赋给左侧的变量。 12. 按或等于赋值运算符(|=):将左侧的变量与右侧的值进行按或操作,并将结果赋给左侧的变量。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值