取反!和按位取反~的差別


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




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM