2 回答

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