2 qq 20254167 qq_20254167 于 2016.03.31 20:07 提问

int型的数字最大输出上限是不是9位呀,为什么我一旦输入10位数它就没数值了?
c++

// IP地址转换.cpp
#include "iostream"
#include "windows.h"
using namespace std;

int main()
{
int i=0,j;
long r=0;
int x=0,y=0;
int a[1000];
cin>>r;
while(r!=0)
{
a[i]=r%16;
r=r/16;
i++;
}
for(j=i-1;j>=0;j--)
{
if(j%2==1)
x=a[j]*16;
else if(j%2==0&&j!=0)
{
y=a[j]*1;
y=x+y;
cout<<y<<".";
}
else
{
y=a[j]*1;
y=x+y;
cout<<y;
}
}
cout<<'\n';
system("pause");
return 0;
}
//我想输入一个十进制数,然后把它变成16进制,最后以ip地址的形式数出来。
但在这里我一旦输入10位数,它就没用了。

2个回答

qq423399099
qq423399099   Ds   Rxr 2016.03.31 20:10

如果楼主的sizeof(int)是4的话,那么int的范围将是-2147483648~2147483647
楼主用10位数的当然没有用了,可以用long long来存

qq_20254167
qq_20254167 谢谢!完全正确!
一年多之前 回复
VisualEleven
VisualEleven   Ds   Rxr 2016.04.01 17:34

_int64 ~~~

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!