2 回答

TA貢獻(xiàn)1757條經(jīng)驗 獲得超8個贊
1、類型不同
int 和 double 雖然都是基本數(shù)據(jù)類型,但 int 是整形, double 是浮點型。
2、在計算中的存儲方式不同
int在32位計算機中占4個字節(jié),這4個字節(jié)的在內(nèi)存中存放的順序為低字節(jié)存在低地址,高字節(jié)存在高地址。
double是64位的,在存儲方式上都是遵從IEEE的規(guī)范,其遵從的是 IEEE R64.53。
擴(kuò)展資料:
C\C++中int、double等數(shù)據(jù)類型范圍的理解
實例代碼:
short sia = -32760;
short sib = (-32760 + 32768) % 65536 - 32768;
printf("not overflow\n");
printf("sia = %hd\n", sia);
printf("sib = %hd\n", sib);
sia = -32769;
sib = (-32769 + 32768) % 65536 - 32768;
printf("\noverflow\n");
printf("sia = %hd\n", sia);
printf("sib = %hd\n", sib);
sia = 32768;
sib = (32768 + 32768) % 65536 - 32768;
printf("\noverflow\n");
printf("sia = %hd\n", sia);
printf("sib = %hd\n", sib);
運行結(jié)果:
說明:
1、在賦值操作時,如sia = -32769,-32769是先作為一個常量值存放在內(nèi)存中,這個數(shù)值是沒有越界的概念的,就是二進(jìn)制值,只是在賦值操作時才進(jìn)行了對應(yīng)的數(shù)據(jù)轉(zhuǎn)換;
2、從運行結(jié)果可見,該處理機制對數(shù)據(jù)溢出和不溢出得到的結(jié)果都是適用的;
3、聯(lián)想數(shù)據(jù)閉環(huán)循環(huán),如程序中32768,超過short型上限,其溢出一個數(shù),作為一個數(shù)據(jù)閉環(huán),則直接跳轉(zhuǎn)到了-32768,也就是short型下限值。
- 2 回答
- 0 關(guān)注
- 1087 瀏覽
添加回答
舉報