位运算符

位运算符:
它只对整形(byte、short、int、long、char(0~65536))运算。
针对二进制码进行运算的。


负数的进制码:保存的是补码。
源码:数。直接算出来的叫源码。最高位:又叫符号位,0 代表正数,1 代表负数。
反码:除符号位之外,其他位都按位取反。
补码:反码+1.

&:按位与。上下两位都是1时,得到的结果才是1,。

|:按位或。上下两位有一个是1时,得到的就是1.
当表示状态时,用特定的数表示开关。
文本状态:粗体、斜体、下划线、中划线
1 2 4 8
000000001 00000010 000000100 000001000
粗体、斜体 00000011 =1 | 2
粗体、斜体、中划线 00001011 = 1 | 2 | 8

~:按位取反。原来是0变成1:原来1变成0
正数变成负的(绝对值+1),负数变成正的(绝对值-1)

^:按位异或。上下两位相同时,得到的结果才是0.不同的时候,得到的结果才是1。

<<:左移。左移N位,相当于乘以2的N次方。
【面试题】 2乘以 8,最快的算法:
2 << 3

>>:右移:右移N位,相当于除以2的N次方
除不尽的情况下,实际结果总是比除的结果略小的整数

>>>:无符号右移:
如果被移位的数是正数,那么该运算符与>>运算符一样。
如果被移位的是负数,被空出来的高位总是补0--这个数就会变成正数。

posted @ 2018-07-11 14:26  投入也日珥  阅读(184)  评论(0编辑  收藏  举报