位运算
大概可以分为两类
与:两个是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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?