2 回答
TA貢獻1848條經驗 獲得超2個贊
1、類型不同
int 和 double 雖然都是基本數據類型,但 int 是整形, double 是浮點型。
2、在計算中的存儲方式不同
int在32位計算機中占4個字節,這4個字節的在內存中存放的順序為低字節存在低地址,高字節存在高地址。
double是64位的,在存儲方式上都是遵從IEEE的規范,其遵從的是 IEEE R64.53。
擴展資料:
C\C++中int、double等數據類型范圍的理解
實例代碼:
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);
運行結果:
說明:
1、在賦值操作時,如sia = -32769,-32769是先作為一個常量值存放在內存中,這個數值是沒有越界的概念的,就是二進制值,只是在賦值操作時才進行了對應的數據轉換;
2、從運行結果可見,該處理機制對數據溢出和不溢出得到的結果都是適用的;
3、聯想數據閉環循環,如程序中32768,超過short型上限,其溢出一個數,作為一個數據閉環,則直接跳轉到了-32768,也就是short型下限值。
- 2 回答
- 0 關注
- 757 瀏覽
添加回答
舉報


