您当前的位置: 首页 > 

【03】

暂无认证

  • 1浏览

    0关注

    196博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

移位运算符(<<、>>和>>>)

【03】 发布时间:2020-07-17 09:47:41 ,浏览量:1

“> 8 用算式进行演示,如图所示。当符号位值为 1 时,则有效位左侧的空位全部使用 1 进行填充。
//取半: >>
var num2 = 300
console.log(num2 >> 1) // 150
var num3 = 321
console.log(num3 >> 1) // 160 会舍去小数
“>>>”运算符
  • “>>>”运算符执行无符号右移位运算。它把无符号的 32 位整数所有数位整体右移。对于无符号数或正数右移运算,无符号右移与有符号右移运算的结果是相同的。

– 在正数情况下,>> 和 >>>返回是相同的

console.log(1000 >> 8);  //返回值3
console.log(1000 >>> 8);  //返回值3

– 在负的情况下不同的是: 对于负数来说,无符号右移将使用 0 来填充所有的空位,同时会把负数作为正数来处理,所得结果会非常大所以,使用无符号右移运算符时要特别小心,避免意外错误。

console.log(-1000 >> 8);  //返回值 -4
console.log(-1000 >>> 8);  //返回值 16777212
* -5 >>> 2
* -5无符号右移2位
* -5的原码:10000000 00000000 00000000 00000101
* -5的补码:11111111 11111111 11111111 11111010
* 右移两位:   11111111 11111111 11111111 11111010
* 高位补0: 00111111 11111111 11111111 111110
* 求得10进制为1073741822

>>:带符号右移。正数右移高位补0,负数右移高位补1

>>>:无符号右移。无论是正数还是负数,高位通通补0

关注
打赏
1657344724
查看更多评论
立即登录/注册

微信扫码登录

0.0373s