http://blog.csdn.net/pipisorry/article/details/36517411
按位取反“~”:按位取反1變0,0變1
邏輯非“!”:邏輯取反, false變true,true變false,在C中,僅僅要不是0就是真
------------------------------------------------------------------------------------------------------------------------------
!5值是0
~按位取反
5二進制00000101,取反11111010,代表-6
所以~5值-6
~是按位取反,比如整數3,二進制形式是
00000000000000000000000000000011,按位取反后就是
11111111111111111111111111111100
!是邏輯否,一個非0數取否之后就是0,上面的3,用!之后就是0
全部的不是0的數用!操作后都是0
僅僅有當操作數等於0xFFFFFFFF的,用!和~的結果值才是一樣的
全部正整數的按位取反是其本身+1的負數
全部負整數的按位取反是其本身+1的絕對值
零的按位取反是 -1
ref:
http://blog.csdn.net/pipisorry/article/details/36517411
http://blog.csdn.net/xiexievv/article/details/8124108
