运算符&与^
&即按位运算 ,都为1的位则为1,否则为0,用于二进制的位运算。
^相同则为0,不同则为1,同样用于二进制的位运算
例如:101 ^ 7
101写成二进制是1100101;
7写成二进制是111,即0000111(将两个数的位数补成一样);
根据前面的表,按位运算:
1 1 0 0 1 0 1
^ 0 0 0 0 1 1 1
---------------------
1 1 0 0 0 1 0
就得到了二进制数1100010,转化为十进制就是98。
101&7 结果则是0000101,转化为十进制就是4。
1 1 0 0 1 0 1
& 0 0 0 0 1 1 1
---------------------
0 0 0 0 1 0 1
二进制转十进制是从最后一位开始依次乘以2的位数次方,从0开始1100010(1*2^6+1*2^5+0*2^4+0*2^3+0*2^2+1*2^1+0*2^0)
十进制转二进制则是依次除以2得余数,然后从最后一位依次排列,101得到的二进制结果是1100101
101/2=50 1 50/2=25 0 25/2=12 1 12/2=6 0 6/2=3 0 3/2=1 1 1/2=0 1
浙公网安备 33010602011771号