用C语言编程"2的63次方"

 我来答
百度网友a39fb3e
推荐于2016-02-13 · TA获得超过4465个赞
知道小有建树答主
回答量:477
采纳率:100%
帮助的人:65.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.

feldspar
2007-04-27 · TA获得超过384个赞
知道小有建树答主
回答量:564
采纳率:0%
帮助的人:0
展开全部
int和long都是32的。存储2的63次方至少需要63位(unsigned)或64位(signed)。double可以存储64位,但需要一些位来存储指数和符号位。所以用这几种类型来做都是错的。64位的整型,在vc下试试__int64,gcc下是long long int。计算嘛,1<<63就是。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuyang054
2007-04-28 · TA获得超过9093个赞
知道大有可为答主
回答量:5317
采纳率:78%
帮助的人:5245万
展开全部
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MidnightChen
2007-04-27 · TA获得超过1946个赞
知道小有建树答主
回答量:578
采纳率:0%
帮助的人:0
展开全部
#include<math.h>
main()
{
long int a;
a=pow(2,63);
printf("2^63=%ld",a);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
regcwt
2007-04-27
知道答主
回答量:29
采纳率:0%
帮助的人:0
展开全部
我感觉用位运算符计算会比较简单一些,2<<62
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式