首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个简单的有关问题,关于int最大值与最小值输出的有关问题?

2012-02-15 
一个简单的问题,关于int最大值与最小值输出的问题???小弟刚接触C++,一个简单问题搞不通!下面一段代码通过

一个简单的问题,关于int最大值与最小值输出的问题???
小弟刚接触C++,一个简单问题搞不通!下面一段代码通过常量来输出int的最大值和最小值
#include <iostream.h>
void main()
{

cout<<"最大int数:"<< 0x80000000-1 <<endl;
  cout<<"最小int数:"<<-0x80000000<<endl;
  cout<<"数:"<< -0x23<<endl;
}

可运行时最小数前面负号没了,试了N次不知道哪儿有问题,删去一个零就可以,加上就没有,运行没有报错,但我查看有这么一段warning C4146: unary minus operator applied to unsigned type, result still unsigned,说是无符号型的,搞不懂,特上来请教,谢谢!

[解决办法]
cout < <"最小int数:" < < int(0x80000000) < <endl; 

[解决办法]
最大数:0x7FFFFFFF
最小数:0x80000000
[解决办法]
多打了个0
[解决办法]

C/C++ code
#include  <iostream.h> void main() //这里改成int main(), void 不符合规范{ cout < <"最大int数:" < < (int)(0x80000000-1)  < <endl;         cout < <"最小int数:" < <(int)0x80000000 < <endl; //他本来就是负数,你再加一个符号不就是正数了?        cout < <"数:" < < (int)(0-0x23) < <endl; //从警告看,0x23被翻译成无符号数,用这种等价算子可以免error       //return 0;}
[解决办法]
int是有符号的
[解决办法]
因为缺省是unsigned int, unsigned int是没有符号的,当然就不会有负号

探讨
谢谢,还想问一下,为什么加上int就会出现负号啦!

热点排行