关于__int64的一个问题

never_QL 2008-10-09 08:22:21
我用sizeof查看到__int64是8,而long是4.
但后来做杨辉三角型的时候,发现__int64在35行的时候就溢出了。
我试过用long,发现也是在35行的时候溢出了。
难道__int64和long的实际储存长度是一样的?
还有,__int64不是64位的吗?怎么才8个字节?



另外问下,怎么在论坛上把代码按排版的方式贴上去?
...全文
122 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lann64 2008-10-09
  • 打赏
  • 举报
回复
用double?你这里难道不是整形?
用__int64可以的,没什么问题。
jia_xiaoxin 2008-10-09
  • 打赏
  • 举报
回复
主要的问题在你的输出,而不在__int64的问题

#include<iostream>
using namespace std;
#define N 50
#define MY_SIZE __int64
MY_SIZE **triangle=NULL;
void chart()
{
triangle = (MY_SIZE **)malloc(sizeof(MY_SIZE *)*(N+1));

for(int i=0; i<N; i++)
{
triangle[i] = (MY_SIZE *)malloc(sizeof(MY_SIZE)*(i+1));
triangle[i][0]=triangle[i][i]=1;
for(int j=1; j<i; j++)
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}
int main()
{
chart();
for(int i=0; i<N; i++)
{
for(int j=0;j<=i;j++)
printf("%I64u ",triangle[i][j]); //修改成这样就能输出50行以上了。
printf("\n");
free(triangle[i]);
}
free(triangle);
system("pause");
return 0;
}
never_QL 2008-10-09
  • 打赏
  • 举报
回复
我试过用double,反而能把50行内的全部储存下来。
__int64不是比double 长吗?
never_QL 2008-10-09
  • 打赏
  • 举报
回复
上面就是代码,环境是DEV C++
never_QL 2008-10-09
  • 打赏
  • 举报
回复

#include<iostream>
using namespace std;
#define N 50
#define MY_SIZE __int64
MY_SIZE **triangle=NULL;
void chart()
{
triangle = (MY_SIZE **)malloc(sizeof(MY_SIZE *)*(N+1));

for(int i=0; i<N; i++)
{
triangle[i] = (MY_SIZE *)malloc(sizeof(MY_SIZE)*(i+1));
triangle[i][0]=triangle[i][i]=1;
for(int j=1; j<i; j++)
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}
int main()
{
chart();
for(int i=0; i<N; i++)
{
for(int j=0;j<=i;j++)
printf("%lld ",triangle[i][j]);
printf("\n");
free(triangle[i]);
}
free(triangle);
system("pause");
return 0;
}
herman~~ 2008-10-09
  • 打赏
  • 举报
回复
8个字节 不是64位?
过去的我 2008-10-09
  • 打赏
  • 举报
回复
8个字节不正好64位吗
  • 打赏
  • 举报
回复
这个应该不是__int64的问题,你贴你的代码就可以了

//code ...

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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