计算机组成原理的时候都学过,不过有点生疏了,最近在研究hashcode的时候遇到又重新整理复习了以下。贴在此处给大家观看也方便自己以后查阅~
位运算bit operation:
and运算& (按位与)
: a & b 1&1=1,0&0=0 , 0&1=0
or运算 | (按位或)
: 1 | 1 = 1, 1 | 0 = 1, 0 | 0=0
xor运算 ^ (按位异或)
exclusive or ,数学符号为“⊕”,计算机符号为“eor”:
1 ^ 1 = 0 , 1 ^ 0 = 1, 0^ 0=0
(不同就是1,相同就是0)
a >> b
带符号右移 :
-
当a为正数时: 将a右移b位,在高位(左边)补0 ,例如:23 >> 2 =5:
23的二进制表示为 10111,右移2位后变为 00101,00101的十进制就是5。
注:23是int类型,Java中表示为32位,实际在计算机中记录为 00000000 00000000 00000000 00010111 -
当a为负数时,将a右移b位,在高位(左边)补1 ,例如 -23 >> 2 = -6:
-23在计算机中以其补码形式