轉自:https://blog.csdn.net/u010812084/article/details/46636537
在程序的錯誤處理中時常會用到
要想判斷int類型的取值范圍,首先要知道:?
1.int類型所占字節數;?
2.整型變量數據在內存中以什么方式存儲;
獲得int型所占字節數
#include<stdio.h>
int main()
{printf("%d\n",sizeof(int));return 0;
}
unsigned int取值范圍。結果:?
得到int所占字節數為4;?
又得知?
整型數據在內存中是以補碼的方式存儲;?
所以當數據>=0時,原碼 = 反碼 = 補碼;?
數值范圍為 0 ~ 2^31 - 1;
#include<stdio.h>
#include<math.h>
int main()
{int a = (pow(2, 31) - 1);printf("%d\n", a);return 0;
}
?
結果 == 2^31 - 1;
當讓 a 為 2^31時;?
?
可以看到結果為 -2^31;?
這是因為?
當a為2^31 - 1時,在計算機中的存儲為01111(31個1);(補碼形式)?
a為2^31時,在計算機中的存儲為01111(31個1) + 1 =10000(31個0);(補碼形式)即為 -2^31在計算機中的存儲形式;
當數據小于0時,?
范圍為 -2^31 ~ 0;?
當a為- 2^31 - 1時;?
?
為 2^31 -1;
int數據類型范圍。所以int類型的取值范圍為(- 2^31 ~ 2^31 -1);
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态