&(与运算),|(或运算),^(异或运算):
转换成2进制数来运算,0视为假,1视为真,最后转回数值得到结果 例:6&3=2;6|5=7;
&:二进制位进行&运算,只有1&1时结果是1,否则是0;
按位与的作用(获取发某一段数据)
与0做与运算,清0。
与1做与运算,保留原值。
按位与的特性(n和1按位与,结果还是n)
|:二进制位进行|运算,只有0|0 时结果是0,否则是1;
与0做按位或,可以保留原值(可以清0用)
与1做按位或,改写1(可以改1)
按位或的特性(n和0按位或,结果还是n)
^:任何相同二进制位进行^运算,结果是0;1^1=0,0^0=0;
不相同二进制位^运算结果是1;1^0=1,0^1=1;
(特点:一个数异或同一个数两次,结果还是那个数)例: 7 ^ 4 ^ 4 =7,这可以起到了加密的作用,同时还能当作一种交换的方法,例:n=n^m; m=n^m;//(n^m)^m; n=n^m; //n^(n^m);
与一个数连续异或两次,还原!)
~:取反:所有位上的值,0变1,1变0。
正数取反,得到一个符号为1的负数,这个负数减一再取反得到负数的绝对值,然后再在这绝对值前面加上一个负号,就是正数的取反了
负数取反,(因为负数在内存中是补码进制存储,数值一律用补码来表示(存储),所以负数的补码是其绝对值的原码,取反再加1。)然后把这个负数的补码再取反就是这个负数的取反了
|