位运算

今天突然要用异或运算,一下子想不起来,问了N个人也没有肯定的答案。
在网上查了一下,且记录下来以便以后查陋补缺吧

位运算符:
注:逻辑运算符只对整型有效,整型在机器中占4个字节。
~ :按位取反。如~2表示对0000 0000 0000 0010取反,为1111 1111 1111 1101。计算机显示这个结果为-3。因为计算机中的数据都是按补码的形式储存的。随意1111 1111 1111 1101作为补码理解其真实值就是-3。
注:真实值取反加一就是对应的补码。所以补码减一再按位取反就是对应的真实值。或者用另外的一种计算方面,对这个补码再求一次补码,就是其真实值。其中第一位为符号位,取反时不变。符号位是1代表是负数。
!  :true or fasle 取反。如 !4 结果为 0。!0 结果为 1;
^  :异或。如 4^2 为 0000 0000 0000 0100^0000 0000 0000 0010为0000 0000 0000 0000 0110,其显示为6。同样是补码表示,不过正数的补码和真实值是一样的。
一个数异或另外一个数再另外同一个数,结果还是其自身,例如:a^b^b=a;a^b^a=b;
& :按位与
|   :按位或
<< :左移位。如 4<<2 既 0100 左移2位,结果位10000,既16;
>> :右移位;
posted @ 2005-11-16 11:40  笑语  阅读(275)  评论(0编辑  收藏  举报