C++怎么定义超长的整型?long long int不行?

 我来答
一只会飞的猪吗
推荐于2018-03-02 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:172万
展开全部

如果你想做关大数的计算如12132382832489238492329329392   很长甚至有100~200位的大数  应该用字符数组  或整型数组保存这个大数再进行相关计算 

例如大数相加

#include<iostream>

#include<string.h>

using namespace std ;

int  Maxlen = 0 ;

char a[110] , b[110] ;

int an1[110] , an2[110] ;

int Addition(int maxlen , int an1[] , int an2[] );

int main()

{

 

 int i , j  ;

 cin >> a ;

 memset(an1,0,sizeof(an1));

 for(j = 0, i = strlen(a)- 1 ; i >= 0 ; i --)

   an1[j++] = a[i] - '0'; 

 

 while( cin >> b )

 {

  if(strcmp( b , "0" ) == 0 )

   break;

     else

   memset( an2 , 0 , sizeof(an2) ) ;

  int len1 = strlen(a) ;

  int len2 = strlen(b) ;

  if(len1 > len2 )

   Maxlen = len1 ;

  Maxlen = len2 ;

     for(j = 0 , i = len2 - 1 ; i >= 0 ; i --)

   an2[j++] = b[i] - '0'; 

  Addition ( Maxlen , an1 , an2 ) ;

 

 }

 

 for( i = 100 ; i >= 0; i -- ) 

 {

  if( an1[i] != 0 )break;

 

 }

 for(;i>=0;i--)

  cout << an1[i] ;

 

}

int Addition( int maxlen , int  an1[] , int  an2[] )

{

 for( int i = 0 ; i < maxlen ; i++ )

 {

  an1[i] += an2[i] ;

 

  if( an1[i] >= 10 ) 

  {

   an1[i] -= 10 ;

   an1[i + 1] ++ ;

  }

 

 }

 return 0;

yesyes科
2020-05-12 · TA获得超过2.6万个赞
知道答主
回答量:608
采纳率:0%
帮助的人:8.7万
展开全部

1、首先打开软件,配合注释看代码。

2、整数类型的变量,如果接收到一个小数,只保留整数部分。

3、虽然c被定义为浮点数,但是由于a和b都是整数类型,导致运行结果也是整数类型,如下图代码。

4、c = a/13.0,如下图所示,效果就变了。

5、最后如下图所示,乘法中,无论浮点数在前还是在后,都不会影响结果。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
高人仰北谋P
推荐于2016-09-02 · TA获得超过3399个赞
知道大有可为答主
回答量:2259
采纳率:86%
帮助的人:702万
展开全部
在C++标准里面并没有规定int, long int, 以及long long int的位长度,因此实际的整数长度取完全决于编译器。
在WINDOWS和LINUX环境下,目前大多数编译器long long类型的定义为64位整数,基本可以满足常规的应用。
如果你所说的超长的整数需要更长的位数,目前只有靠自己定义了,这个在C++里面用class是很容易实现的,可以到网上搜索一下参考的例子,也可以参考此文,里面有详细的C++代码。
代码参考链接地址: http://bbs.csdn.net/topics/370046872
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Constroy
2012-08-03 · TA获得超过134个赞
知道答主
回答量:61
采纳率:0%
帮助的人:41万
展开全部
怎么可能不行?你用的什么编译环境?难道是16位的机子?还是win3.0的系统?莫非楼主安卓?塞班?
如果是VC的话,long long 没理由不行
如果是windows下的devC++或其他g++编译的话,建议试试__int64,和long long一样的
如果是Linux或Unix的话,除非是32位以下的系统,否则都可以用long long
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帅幻迩3N
2012-08-03 · TA获得超过682个赞
知道小有建树答主
回答量:486
采纳率:100%
帮助的人:291万
展开全部
用 __int64 试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式