[問題] "~"這個符號怎麼運算??

看板C_and_CPP (C/C++)作者 (嚕拉拉)時間15年前 (2011/05/19 15:56), 編輯推噓1(104)
留言5則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) LINUX GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) NO 問題(Question): ~a 怎麼計算來的? 餵入的資料(Input): a=13 預期的正確結果(Expected Output): a=2 錯誤結果(Wrong Output): 沒錯誤~只是不知道怎麼算出來的 程式碼(Code):(請善用置底文網頁, 記得排版) #include <stdio.h> int main(void){ int a=13; int b=6; printf("a&b=%d\n", a&b); printf("a|b=%d\n", a|b); printf("a^b=%d\n", a^b); printf("~a=%d\n", ~a); return 0; } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 輸出結果: a&b=4 a|b=15 a^b=11 ~a=-14 補充說明(Supplement): a=-14 怎麼算出來的?? 個人想法 a=13 a=1101 ~a=0010 a=2 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.9.209

05/19 16:02, , 1F
a = 00000000000000000000000000001101 (13)
05/19 16:02, 1F

05/19 16:02, , 2F
~a = 11111111111111111111111111110010 (-14)
05/19 16:02, 2F

05/19 16:02, , 3F
bitwise not 也可經由 -a-1 得到
05/19 16:02, 3F

05/19 16:02, , 4F
a = 13 = 0x0000000D , ~a = 0xFFFFFFF2 = -14
05/19 16:02, 4F

05/19 16:12, , 5F
了解了~~謝謝各位
05/19 16:12, 5F
文章代碼(AID): #1DrCqQDQ (C_and_CPP)
文章代碼(AID): #1DrCqQDQ (C_and_CPP)