C++中的int具体能到10的几次方??

如题所述

2的10次幂约等于10的3次幂,2的32次幂约等于10的9次幂,解决方法如下:

1、首先当幂的值为0时,对正数求n次方的结果是1,如果幂的值不为0,则为n个x的值相乘。

2、定义两个实数型变量,保存求幂的底和计算结果。

3、定义两个整型变量,保存正数的次方,以及临时变量。

4、输入正数的值,保存在变量x中。输入正数的次方,保存在变量n中。

5、用if语句判断,次方的值是否为0。如果条件成立,用do-while语句计算正数的n次方。

6、最后,运行程序,输入任意一个正数和它的次方,电脑就会计算出它的值。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-07
int 类型占4个字节,每个字节占8位,所以一共有32位,除去一位符号位,也就31位,能表示整数大小是2^31 次方 2^10约等于10^3 所以 2^31约等于10^9本回答被网友采纳
第2个回答  2013-11-10
2的10次幂约等于10的3次幂,2的32次幂约等于10的9次幂追问

如果我想要用一个超过这范围的数,比如1000000000000,可以用什么来解决

追答

可以把每一位存在数组里面,模拟加法过程

追问

什么是模拟加法??

追答

定义一个cha *a = (char *)malloc(1000000000000000000sizeof(char));
a[0]存储个位,a[1]存储十位,以此类推,,实现稍微有点复杂,网上搜索大数表示,大数加法等。

本回答被提问者采纳
第3个回答  2013-11-10
#inlcude <limits.h>
其中有定义如下
#define MB_LEN_MAX 5 /* max. # bytes in multibyte char */
#define SHRT_MIN (-32768) /* minimum (signed) short value */
#define SHRT_MAX 32767 /* maximum (signed) short value */
#define USHRT_MAX 0xffff /* maximum unsigned short value */
#define INT_MIN (-2147483647 - 1) /* minimum (signed) int value */
#define INT_MAX 2147483647 /* maximum (signed) int value */
#define UINT_MAX 0xffffffff /* maximum unsigned int value */
#define LONG_MIN (-2147483647L - 1) /* minimum (signed) long value */
#define LONG_MAX 2147483647L /* maximum (signed) long value */
#define ULONG_MAX 0xffffffffUL /* maximum unsigned long value */
#define LLONG_MAX 9223372036854775807i64 /* maximum signed long long int value */
#define LLONG_MIN (-9223372036854775807i64 - 1) /* minimum signed long long int value */
#define ULLONG_MAX 0xffffffffffffffffui64 /* maximum unsigned long long int value */
不同的软硬件环境下这些值会变化 一切以 limits.h 为准
第4个回答  2013-11-10
如果是32位的int可以存放2的31次方等于2147483647~-2147483647
如果用超过这个范围的数,可以用long int
相似回答