[問題] unsigned int & int 型態的差別

看板C_and_CPP作者 (喵喵~可愛的迪兒喵喵~)時間11年前 (2013/06/14 10:14), 編輯推噓0(005)
留言5則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev-C 預期的正確結果(Expected Output): <=6 錯誤結果(Wrong Output): >6 程式碼(Code):(請善用置底文網頁, 記得排版) main() { unsigned int a=6; //int a=6; int b=-35; unsigned int c; (a+b>6)?puts(">6"):puts("<=6"); system("PAUSE"); } 補充說明(Supplement): 當a宣告成unsigned int時,輸出 >6, 而宣告成int時,輸出 <=6, 請問在這個例子資料的型態(unsigned int & int)是如何影響輸出的結果? 謝謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.85.196

06/14 10:22, , 1F
unsigned不就是代表沒有負的嗎?
06/14 10:22, 1F

06/14 10:52, , 2F
轉成2進位看
06/14 10:52, 2F

06/14 12:59, , 3F
a+b時若a跟b的type不同會轉型,這例是b會變unsigned。
06/14 12:59, 3F

06/14 23:18, , 4F
可是print a+b 時 會顯示-29 XD
06/14 23:18, 4F

06/15 01:27, , 5F
因為print的時候叫他用%d而不是%u ?
06/15 01:27, 5F
文章代碼(AID): #1Hkdo934 (C_and_CPP)