按位取反“~”:按位取反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