以前一直不知道位运算中的&、|、!~是什么情况,今天看了一下位运算,感觉好简单,前两者跟运算符&&、||差不多,只不过位运算中操作是按二进制的方法操作的,比如10和12他们的二进制为:1010和1100,进行&运算,每一位比较出来的结果为:1000,结果是8。进行|运算,每一位比较的结果是:1110,结果是14。不同是~运算符,我的理解是,把按位运算的数变成2进制,然后取反。取反后,根据情况将他们返回到二进制数,然后再变成十进制,这是计算机的操作方法。例如:7(二进制0000 0000 0000 0111)----取反后(1111 1111 1111 1000)这是计算机的二进制补码形式存储在计算机中的,我们要找到他的反码,然后根据情况,得到二进制数,再化成十进制。则(1111 1111 1111 1000)一看是某个负数的补码,所以先取反码,再加一。取反后(1000 0000 000 0111,注意首位是符号位不能变),加一后(1000 0000 000 1000),结果为:-8。再来看看-7。首先写出二进制的-7(1000 0000 0000 0111)取反后(1111 1111 1111 1000),这时需要将这个反码+1,(1111 1111 1111 1001)变成补码,然后再取反变成原码(0000 0000 0000 0110),即是一个二级制数,再把它变成十进制为6,暂且这样理解。网上的资料比较多,介绍正负数的源码和补码,反码的问题很清楚。