大家好,欢迎来到IT知识分享网。
1.在32的机器下,int的范围是 – 2 ^ 31 ~2 ^ 31 – 1; 也就是:[-, ];
在16的机器下,int的范围为 -2 ^ 15 ~ 2 ^ 15-1;也就是 :[-32768,32767];
整型变量int的范围与计算机的字长有关,int 的长度是一个计算机字长。
2.int n =– 时,会发生错误 1:error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型
所以该值不能写为 -,因为表达式处理分两个步骤:1. 计算数字 。 因 大于最大整数值 ,所以其类型不是 int,而是 unsigned int。2. 将一元负应用于该值,得到无符号结果,该结果碰巧是 。而这种隐含转换的无符号类型的结果可能导致意外行为,所以编译器会提示waring甚至在VS2012中直接提示error。
原因分析:http://blog.csdn.net/mrknight/article/details/
3.原码, 反码, 补码 详解
4.INT_MIN和INT_MAX看最小值和最大值
cout << "int 最小值: " << INT_MIN << endl; cout << "int 最大值: " << INT_MAX << endl; int a ,b,c,d; a = ; //比如说在32的机器下,int的范围是 - 2 ^ 31 ~2 ^ 31 - 1; 也就是:[-, ]; 16的机器下范围为-2^15~2^15-1 b = a + 1; cout << a << " " << b << endl; c = -; //虽然明明 int 最小值是 - ,但我们就是无法用int n = -; 表示。 // d = c - 1; //cout << c << " " << d << endl;
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/142703.html