先对各位运算符做总结。
“&”:只有当两个位都为1时,结果才为1。可以得出,一个数为0时,结果必为0。
“|”:只有当两个位都为0时,结果才为0。可以得出,只要两个数有一个为1,结果就为1。
“^”:两个位相同时结果为0,不同时为1。
“~”:取反,唯一一个单目位运算符。
“<<”:左移,各二进位全部左移若干位,高位丢弃,低位补0。
“>>”:右移,各二进位全部右移若干位,高位补符号位数(只针对java)。
“>>>”:无符号右移,无论高位是什么,都在高位补0。
几篇关于位运算的优秀帖子:
http://blog.csdn.net/zmazon/article/details/8262185(各种运用技巧)
http://blog.csdn.net/morewindows/article/details/7354571