计算机能表示最大的整数的方法

东北小妞 2009-11-05 11:10:11
有人说可以用数组,有的说可以用结构体
大家给参谋下
...全文
1034 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
由于 int 数据的限制,在 Java 中所能表示的数理论上最大为:

sunny936 2009-11-05
  • 打赏
  • 举报
回复
java.math.BigInteger
AldisZhan 2009-11-05
  • 打赏
  • 举报
回复

// 现成的别人实现好的
java.math
类 BigInteger
java.lang.Object
java.lang.Number
java.math.BigInteger
所有已实现的接口:
Serializable, Comparable<BigInteger>

--------------------------------------------------------------------------------

public class BigIntegerextends Numberimplements Comparable<BigInteger>不可变的任意精度的整数。所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型)。BigInteger 提供
所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。

beiouwolf 2009-11-05
  • 打赏
  • 举报
回复
java.math.BigInteger
提供不可变的任意精度的整数
xierangh 2009-11-05
  • 打赏
  • 举报
回复
你想多大就多大咯。
阿_布 2009-11-05
  • 打赏
  • 举报
回复
BigDecimal,BigInteger
amdgaming 2009-11-05
  • 打赏
  • 举报
回复
去看看 java的 bigdicimal 和 biginteger
呵呵
applerockhool 2009-11-05
  • 打赏
  • 举报
回复
心有多大就能存多大
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 bao110908 的回复:]
引用 9 楼 bawgiitx 的回复:
引用 7 楼 bao110908 的回复:
由于 int 数据的限制,在 Java 中所能表示的数理论上最大为:


对于32位机
Integer.MAX_VALUE = 2^(32-1)-1
由于 int 数据的限制,数组长度最大为Integer.MAX_VALUE
对一维数组char[],每一个字符可以表示2^(32-1)-1,即一个一维数组最大可以表示
(2^(32-1)-1)^(2^(32-1)-1)-1,
java数组最多只能是255维
那最终能表示的最大数为
((2^(32-1)-1)^(2^(32-1)-1)-1)^255-1
楼上你的式子是怎么弄的?


LaTex 公式,网上的 LaTex 服务哦

你的这公式为:


[/Quote]

字符的范围没有那么多哦,只有 65536 个,也就是
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bawgiitx 的回复:]
引用 7 楼 bao110908 的回复:
由于 int 数据的限制,在 Java 中所能表示的数理论上最大为:


对于32位机
Integer.MAX_VALUE = 2^(32-1)-1
由于 int 数据的限制,数组长度最大为Integer.MAX_VALUE
对一维数组char[],每一个字符可以表示2^(32-1)-1,即一个一维数组最大可以表示
(2^(32-1)-1)^(2^(32-1)-1)-1,
java数组最多只能是255维
那最终能表示的最大数为
((2^(32-1)-1)^(2^(32-1)-1)-1)^255-1
楼上你的式子是怎么弄的?
[/Quote]

LaTex 公式,网上的 LaTex 服务哦

你的这公式为:

Brodie 2009-11-05
  • 打赏
  • 举报
回复
设X为Java的最大值,为什么不用X代替2^31 - 1; 为啥要用数组呢。
所以理论上不成立

[Quote=引用 7 楼 bao110908 的回复:]
由于 int 数据的限制,在 Java 中所能表示的数理论上最大为:


[/Quote]
苍蝇①号 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bawgiitx 的回复:]
引用 7 楼 bao110908 的回复:
由于 int 数据的限制,在 Java 中所能表示的数理论上最大为:


对于32位机
Integer.MAX_VALUE = 2^(32-1)-1
由于 int 数据的限制,数组长度最大为Integer.MAX_VALUE
对一维数组char[],每一个字符可以表示2^(32-1)-1,即一个一维数组最大可以表示
(2^(32-1)-1)^(2^(32-1)-1)-1,
java数组最多只能是255维
那最终能表示的最大数为
((2^(32-1)-1)^(2^(32-1)-1)-1)^255-1
楼上你的式子是怎么弄的?
[/Quote]
我想是数组的大小限制的,每一个数组元素存一位数字,
数组最大可以有int的最大值个元素,就是2的32次方减一个
每个元素为10个排列,就是0到9十个数
所以就是7楼的结果了
网络咖啡 2009-11-05
  • 打赏
  • 举报
回复
用数组实现吧
zyr322 2009-11-05
  • 打赏
  • 举报
回复
楼上的牛啊

jython论坛
bawgiitx 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bao110908 的回复:]
由于 int 数据的限制,在 Java 中所能表示的数理论上最大为:
[/Quote]

对于32位机
Integer.MAX_VALUE = 2^(32-1)-1
由于 int 数据的限制,数组长度最大为Integer.MAX_VALUE
对一维数组char[],每一个字符可以表示2^(32-1)-1,即一个一维数组最大可以表示
(2^(32-1)-1)^(2^(32-1)-1)-1,
java数组最多只能是255维
那最终能表示的最大数为
((2^(32-1)-1)^(2^(32-1)-1)-1)^255-1
楼上你的式子是怎么弄的?
苍蝇①号 2009-11-05
  • 打赏
  • 举报
回复
用数组存储比较方便
参考《算法分析与实现》上面有大整数的加法

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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