异或运算(^)
定义:参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。
示例:
0^0=0; 0^1=1; 1^0=1; 1^1=0;
按位与运算符(&)
定义:参加运算的两个数据,按二进制位进行“与”运算。两位同时为“1”,结果才为“1”,否则为0;
(注:负数按补码形式参加按位与运算。)
示例:
42&40 即 0100 0010& 0100 0000 = 0100 0000 因此,42&40的值得40。
按位或运算符(|)
定义 :参加运算的两个对象,按二进制位进行“或”运算。
运算规则:即 :参加运算的两个对象只要有一个为1,其值为1。(注:负数按补码形式参加按位或运算。)
示例:
42|40 即 0100 0010 | 0100 0000 = 0100 0000 因此,42|40的值得42。
取反运算符(~)
定义:参加运算的一个数据,按二进制位进行“取反”运算。
运算规则:~1=0; ~0=1;
即:对一个二进制数按位取反,即将0变1,1变0。
使一个数的最低位为零,可以表示为:a&~1。
左移运算符(<<)
定义:将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
例:
a = a<< 2将a的二进制位左移2位,右补0,
左移1位后a = a *2;
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
右移运算符(>>)
定义:将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
操作数每右移一位,相当于该数除以2。
例如:
a = a>> 2 将a的二进制位右移2位,
左补0还是补1得看被移数是正还是负。
且(&&)或(||)运算符
&&:
1、条件判断中所有条件都为true时,才会进入方法
2、但凡有一个为false就不会进if方法中会进入else方法
||:
只要有一个为true就会进入if方法中