int型整数的最小值和最大值

mengzhisu 2010-07-28 02:53:25
怎样用程序计算出int型整数的最小值和最大值啊。(编程语言是C或C++)
...全文
4963 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
一海 2012-02-25
  • 打赏
  • 举报
回复
cout<<(std::numeric_limits<size_t>::max)()<<endl;
cout<<(std::numeric_limits<size_t>::min)()<<endl;

是求哪个类型的最大值和最小值呢?
世界新新人 2010-10-23
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 canshui 的回复:]
运行后要等几秒钟,才有结果

C/C++ code
void main()
{
int i=0, max, min ;
while(1) {
if(i+1<=0) {
max=i ;
min=i+1 ;
break ;
}
i++ ;
……
[/Quote]如果是double类型呢?
好像等的时间就太长了吧
各位大虾还有好点的思路吗?
不要用特殊函数的
O(∩_∩)O谢谢
OnMyWay2010 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 onmyway2010 的回复:]
引用 3 楼 we_sky2008 的回复:
C/C++ code

#define MAX_INT ((unsigned)(-1) >> 1)
#define MIN_INT (MAX_INT + 1)

这个正解
[/Quote]
最大值就是除最高位外,其余位都为1,-1即是所有位全部是1,右移1位后最高位变0
最小值即是最高位为1,其余位为0,所以最大值+1之后就变成了最小值
OnMyWay2010 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 we_sky2008 的回复:]
C/C++ code

#define MAX_INT ((unsigned)(-1) >> 1)
#define MIN_INT (MAX_INT + 1)
[/Quote]
这个正解
aozhi 2010-07-28
  • 打赏
  • 举报
回复
最小值 1<<(sizeof(int)-1)
最大值 !(1<<(sizeof(int)-1))
hastings 2010-07-28
  • 打赏
  • 举报
回复
#include <iostream>
多打了个#
hastings 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 mengzhisu 的回复:]

hastings能不能解释一下你的程序啊?我用的是VC6编译器,你的程序编译通不过
[/Quote]
我少包含了几个头文件~~~
#include <limits>
##include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
cout<<(std::numeric_limits<int>::max)()<<endl;
cout<<(std::numeric_limits<int>::min)()<<endl;
cout<<(std::numeric_limits<size_t>::max)()<<endl;
cout<<(std::numeric_limits<size_t>::min)()<<endl;
cout<<(std::numeric_limits<float>::max)()<<endl;
cout<<(std::numeric_limits<float>::min)()<<endl;
cout<<(std::numeric_limits<double>::max)()<<endl;
cout<<(std::numeric_limits<double>::min)()<<endl;
return 0;
}
canshui 2010-07-28
  • 打赏
  • 举报
回复
运行后要等几秒钟,才有结果
void main()
{
int i=0, max, min ;
while(1) {
if(i+1<=0) {
max=i ;
min=i+1 ;
break ;
}
i++ ;
}
printf("vc下int型最大%d~~~最小%d\n",max, min) ;
}
xixiaoliu 2010-07-28
  • 打赏
  • 举报
回复
最大 0x7fffffff
最小 0x80000000
mengzhisu 2010-07-28
  • 打赏
  • 举报
回复
terhack能不能讲一下你的思路啊,你的程序我有点不太明白。但你的结果是正确的,你是不是调用的函数库啊。
2401_863541072 2010-07-28
  • 打赏
  • 举报
回复

#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("maxInt:%d\n",INT_MAX);
printf("maxInt:%d\n",INT_MIN);
system("pause");
return 0;
}

mengzhisu 2010-07-28
  • 打赏
  • 举报
回复
hastings能不能解释一下你的程序啊?我用的是VC6编译器,你的程序编译通不过
hela329512384 2010-07-28
  • 打赏
  • 举报
回复
用比较方法或冒泡法
hastings 2010-07-28
  • 打赏
  • 举报
回复

#include <limits>
int main()
{
cout<<(std::numeric_limits<int>::max)()<<endl;
cout<<(std::numeric_limits<int>::min)()<<endl;
cout<<(std::numeric_limits<size_t>::max)()<<endl;
cout<<(std::numeric_limits<size_t>::min)()<<endl;
cout<<(std::numeric_limits<float>::max)()<<endl;
cout<<(std::numeric_limits<float>::min)()<<endl;
cout<<(std::numeric_limits<double>::max)()<<endl;
cout<<(std::numeric_limits<double>::min)()<<endl;
return 0;
}
bobo364 2010-07-28
  • 打赏
  • 举报
回复
假设我们不知道最大值和最小值,具体怎么计算出来还真不知道。难道说从0开始一头一直减,一头一直加,加到数值不对了为止??
bobo364 2010-07-28
  • 打赏
  • 举报
回复
不同的编译器不同,tc是16位的大小(-32768)---(+32768),dev c++能表示32位大小没算过应该是(-2 31次方)---(+2 31次方)
we_sky2008 2010-07-28
  • 打赏
  • 举报
回复
楼主貌似不喜欢结贴
maoxing63570 2010-07-28
  • 打赏
  • 举报
回复
这个跟存储的位数有关了,如果你用TC的话,那么存储一个整数的采用的是2个字节,那么你自己去算去了。如果你用的是VC的话,整数用的是4个字节,具体的最大和最小也是你自己去算了。还句话说就是跟编译器有关。我这里说的是C语言,C++才开始学还有点不熟悉。
we_sky2008 2010-07-28
  • 打赏
  • 举报
回复

#define MAX_INT ((unsigned)(-1) >> 1)
#define MIN_INT (MAX_INT + 1)
Jim_King_2000 2010-07-28
  • 打赏
  • 举报
回复
基本上,不需要计算。
如果是C语言的话,有一个头文件叫做limit.h
http://msdn.microsoft.com/en-us/library/296az74e%28VS.80%29.aspx
如果是C++的话,用std::numeric_limits<int>::max()。
加载更多回复(1)

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧