回覆列表
-
1 # 使用者3164016143300
-
2 # 被瓜撐死的猹
在C語言中,~x代表的意思是按位取反的意思。
將x按位取反 比如x = 10101010b。 那麼~x = 01010101b。
還要注意,在C語言中,還有邏輯取反符號“!”,“!x”的返回值只有0和1兩種。如果x為0,則!x=1。如果x不等於0.則!x的返回值為0。
-
3 # 深知你是夢74884074
~x代表對x進行按位取反運算。
拓展資料:使用~按位取反運算的時候,計算機會將運算元所對應的二進位制表示式的每一個位進行取反計算,取反後所得到的值就是~按位取反的運算結果。
例如,假如計算機是32位的,接下來要計算~5的值,計算過程如下:
5 的二進位制表示式為:0000 0000 0000 0000 0000 0000 0000 0101
執行~運算,即~5後: 1111 1111 1111 1111 1111 1111 1111 1010,即結果為-6
以上過程沒有任何問題,但如果忘記了負數的二進位制表達方式,那麼就會對這個結果產生疑問,為什麼1111 1111 1111 1111 1111 1111 1111 1010表示-6,可能會以為它應該表示-10等等,所以,使用~按位取反的另一個關鍵就是理解1111 1111 1111 1111 1111 1111 1111 1010為什麼表示-6,也即理解負數的二進位制表達方式。
邏輯判斷,歎號是非的意思,x是各變數,如果x為零那麼!x就是1,相反是0。 若X是“0”(為假),則“!x”就不是零(為真),則裡面為真,進入if下的大。 若X不是“0”(為真),則“!x”就是零(為假),則裡面為假,跳過if下的大。