您当前的位置: 首页 > 

石头wang

暂无认证

  • 3浏览

    0关注

    295博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

位运算详解

石头wang 发布时间:2021-05-04 17:34:44 ,浏览量:3

位运算 大概可以分为两类

在这里插入图片描述 在这里插入图片描述 与:两个是1才是1 或:只要有一个是1就是1 异或:只有11跟或不同,其他一样。(更好的记忆方式:相同是0) 取反:0变1,1变0

左移:乘以2(不是变为原来的2倍大!! -8 )

正数的右移(>>)和无符号右移动(>>>)应该是完全等价的 (所以看到了ArrayList的扩容,使用的是 >> 而没有使用>>>,其实是等价的。int newCapacity = oldCapacity + (oldCapacity >> 1);)

>>> 运算符把 expression1 的各个位向右移 expression2 指定的位数。右移后左边空出的位用零来填充。移出右边的位被丢弃。

例如:var temp = -14 >>> 2

变量 temp 的值为 -14 (即二进制的 11111111_11111111_11111111_11110010),向右移两位后等于 1073741820 (即二进制的 00111111_11111111_11111111_11111100)。

无符号右移就是不管是正数还是负数高位补0(跟右移不一样,右移要兼顾正负符号,正数右移补0,负数右移补1,而 “无符号右移” 不区分,一律补0 在这里插入图片描述

8、无符号左移(
关注
打赏
1663722529
查看更多评论
立即登录/注册

微信扫码登录

0.0396s