①关于& | ^ 等
按位与 &:
int a=9;//0000 1001
int b=4;//0000 0100
//0000 0000
int c=a&b //c=0
(都是1为1 否则为0)
应用:快速置零 判断奇偶
按位或 |:
int a=9;//0000 1001
int b=4;//0000 0100
//0000 1101
int c=a|b //c=13
(有1就为1)
应用:我也不知道
按位异或 ^:
int a=9;//0000 1001
int b=4;//0000 0100
//0000 1101
int c=a^b //c=13
应用:交换数值 定位反转(a = a^0xFF)
(相同为0 不同为1)
按位取反 ~:
(对2进制的每一位取反)
左移(<<)右移(>>):
int a=9;//00000000 00000000 00000000 00001001
a=a<<4;//00000000 00000000 00000000 10010000
(在左移过程中 最左边的四位被舍弃 最末尾有填充四个零 最高位符号位被移出 会导致溢出)
(左移n位 就是把原来的值乘以2的n次方)
int b=16;//00000000 0000000 00000000 00010000
b=b>>4;//00000000 00000000 00000000 00000001
(会根据原数值的符号位来确定补零还是补一)
(又移n位 就是把原来的值除以2的n次方)
网友评论