[問題] '\x30'/5 == 9?

看板C_and_CPP作者 (english1705)時間12年前 (2013/04/16 00:30), 編輯推噓4(403)
留言7則, 5人參與, 最新討論串1/1
我照打一個C++ 但我看來看去不知道為何輸出9? 以下是程式: #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { char ch='\x30'; int result, i=5; float f=2.5; double d=6.0; result=(ch/i); printf("Result=%d\n",result); system("pause") ; return 0; } 謝謝大家的幫忙!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.69.247

04/16 00:35, , 1F
你期望輸出多少?
04/16 00:35, 1F

04/16 00:35, , 2F
ch 以數字看是 48 (十六進位的 30) 除以 5 取整數確實是 9
04/16 00:35, 2F
那請問一下x30如何看出是48? ※ 編輯: english1705 來自: 61.231.69.247 (04/16 00:39)

04/16 00:43, , 3F
3*(16的一次方) = 3*16 = 48
04/16 00:43, 3F

04/16 00:45, , 4F
前面加上x就是告訴compiler後面的30是16進位
04/16 00:45, 4F

04/16 10:54, , 5F
照打的就老實講不會怎樣。自己寫的看不懂,太誇張了。
04/16 10:54, 5F
※ 編輯: english1705 來自: 61.231.69.247 (04/16 17:30)

04/16 17:43, , 6F
'\x30' = 0x30
04/16 17:43, 6F

04/16 17:44, , 7F
我都用這這種形式表示<ESC> ('\x1A)
04/16 17:44, 7F
文章代碼(AID): #1HR2is3G (C_and_CPP)