位运算符号
位运算符号有如下几个 &,|,^,~。
接下来一个一个说下我的理解吧。
&运算符
&,与,逻辑运算的话,应该叫做并且,a & b,转换成二进制,比如 4 & 1 = ?。等于多少呢!首先转换成二进制, 100 & 1 = 0,转换成十进制,还是0;5 & 1 = ?;这个呢,答案呢,当然是 101 & 1 = 1;由于1二进制的最后一位是1,再根据&运算符的性质,相同为1,不同为0。可以得出 “奇数 & 1 = 1”和“偶数 & 1 = 0”的结论。
|运算符
|,或,逻辑运算符,应该叫做或,应该是或的关系,转换成二进制,只要有一个为1 则为1,否则为0。举个例子吧,3 | 1 =? ;答案呢,当然是 11 | 1 = 11,转换成10进制,也就是 3 | 1 = 3;4 | 1 = ?呢,一样的计算逻辑,100 | 1 = 101,也就是 4 | 1 = 5,就是这样计算的。得出的结论是“奇数 | 1 = 奇数本身”和“偶数 | 1 = 偶数 + 1”的结论。
^运算符,逆运算,都很重要
^,异或运算符,应该叫做异或,逻辑关系,最重要的特点是逆运算;那么,什么是逆运算呢?a + b = c; c - a = b; c - b =a;这就叫做减法是加法的逆运算;或许,你会问,加法是减法的逆运算吗?按照规则推算,a - b = c ; c+b =a; c+a != b;所以,加法不是减法的逆运算;大概,你可以知道,逆运算最主要的特点:可以交换。比如,a ^ b = c;那么 c ^ b = a; c ^ a = b;都是成立的。这就是逆运算。不过,异或是一个可逆的运算,也就是不像减法是加法的那样,不可逆;a ^ b = c;任何2个数异或操作都等于第三个数。相同为0,不同为1,这是^运算的最大特点。比如,a ^ b ^ a ^ c ^ c = b;首先满足交换律,找到相同的在一起;然后执行运算,相同为0,不同为1,最后得到 0 ^ b ,0和任何数 ^ 运算后都等于它本身。
~运算符
~,取反运算,很简单了,相对来说。
~1 = 0; ~2 = 1;
很简单了吧。
网友评论