在linux下編寫c語言會overflow |
尚未結案
|
kochen
一般會員 發表:8 回覆:5 積分:2 註冊:2004-09-05 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
會不會 overflow 與 10 進位、16進位應該沒有關係。
資料存在電腦或在電腦內計算,都是用 2 進位,
10 進位是在最後給人看的時候才需要轉換,
16 進位只是讓程式設計師比較容易看懂 2 進位,
如此而已。以宣告兩個 int abc,xyz; 的變數,這個 abc 與 xyz 就是整數,沒有 10 進位、16進位的問題,它存在電腦內就是 2 進位。 abc=100; 那 abc 就是記錄 100 (10進制)這個數值,以 16 進制就是 64,而存在電腦內就是 2 進制 1100100 xyz=0x100; 那 xyz 就是記錄 0x100 這個數值,當然 0x100 以 16 進制來看就是 100,
如果以 10 進制來看就是 256,但是它存在電腦內就是 2 進制的 100000000 abc=abc+xyz; 這個計算,在電腦內作的就是2進制的
1100100 + 100000000 = 101100100 所以 abc 會變成 2 進制的 101100100 也就是 10 進制的 356 也會是 16 進制的 164 給人看的轉換
printf("abc(10 進制)=%d\n",abc);
printf("abc(16 進制)=%X\n",abc);
至於 2 進制... 說真的 101100100 要看也實在是不容易 回到主題: href="http://free.greenworld.com.tw/~dllee/" target="blank">吃軟也吃硬 dllee.ktop.com.tw StatPlus 系統資源監測器 @ KTOP VMASK - ViewMove Automation Software Kernel
------
http://www.ViewMove.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |