用C语言编程"2的63次方"
5个回答
展开全部
2的63次方可以用高精度乘法解决,代码如下:
#include<stdio.h>
void main()
{
int i,j,n=63,len=0,a[10000]={0};
a[0]=1;
for(i=1;i<=n;i++)
{
for(j=0;j<=len;j++)
a[j]*=2;
for(j=0;j<=len;j++)
if (a[j]>=10)
{
a[j]%=10;
a[j+1]++;
}
if (a[len+1]>0) len++;
}
printf("2的63次方为");
for(i=len;i>=0;i--)
printf("%d",a[i]);
printf(".\n");
}
输出如下:
2的63次方为9223372036854775808.
展开全部
int和long都是32的。存储2的63次方至少需要63位(unsigned)或64位(signed)。double可以存储64位,但需要一些位来存储指数和符号位。所以用这几种类型来做都是错的。64位的整型,在vc下试试__int64,gcc下是long long int。计算嘛,1<<63就是。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2 的63次方
#include "stdafx.h"
#include "stdio.h"
int main()
{
int i;
float a=2;
for(i=0;i<62;i++)
a=a*2;
printf("%10.2f\n",a);
return 0;
}
#include "stdafx.h"
#include "stdio.h"
int main()
{
int i;
float a=2;
for(i=0;i<62;i++)
a=a*2;
printf("%10.2f\n",a);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<math.h>
main()
{
long int a;
a=pow(2,63);
printf("2^63=%ld",a);
}
main()
{
long int a;
a=pow(2,63);
printf("2^63=%ld",a);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我感觉用位运算符计算会比较简单一些,2<<62
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询