Ruby 获取最大整数大小值
Ruby get maximum integer size value
Java 的 Integer.MAX_VALUE?
的 Ruby 是什么?希望原生。
亚军:如果没有等价物,我需要为时间对象设置它,所以不是硬编码整数 2116-02-20 的最大日期,是否有适用于此的系统常量?
整数不再有最大值,它们会自动转换为 "bignum" 表示:
1 << 64
# => 18446744073709551616
(1 << 64) + 1
# => 18446744073709551617
除了内存之外真的没有限制:
1 << (1 << 16)
# => 20035299304...(thousands of digits)...05719156736
至于时间,它同样是无限的,所以如果你真的想的话,现在你可以在宇宙热寂之后很好地表达时间:
Time.at(1<<128)
# => 10783118943836478994022445751222-08-06 04:04:16 -0400
这过去被限制在通常的 +/- 21 亿范围内,受 2038 problem 的约束,但自 Ruby ~1.9 以来情况并非如此。除了从 Windows 的角度来看,我不确定 2116 因素在哪里。
如果您想知道可以用 "native" 整数表示的 max/min,则这取决于平台。 32 位和 64 位二进制文件会有不同的限制。
Java 的 Integer.MAX_VALUE?
的 Ruby 是什么?希望原生。
亚军:如果没有等价物,我需要为时间对象设置它,所以不是硬编码整数 2116-02-20 的最大日期,是否有适用于此的系统常量?
整数不再有最大值,它们会自动转换为 "bignum" 表示:
1 << 64
# => 18446744073709551616
(1 << 64) + 1
# => 18446744073709551617
除了内存之外真的没有限制:
1 << (1 << 16)
# => 20035299304...(thousands of digits)...05719156736
至于时间,它同样是无限的,所以如果你真的想的话,现在你可以在宇宙热寂之后很好地表达时间:
Time.at(1<<128)
# => 10783118943836478994022445751222-08-06 04:04:16 -0400
这过去被限制在通常的 +/- 21 亿范围内,受 2038 problem 的约束,但自 Ruby ~1.9 以来情况并非如此。除了从 Windows 的角度来看,我不确定 2116 因素在哪里。
如果您想知道可以用 "native" 整数表示的 max/min,则这取决于平台。 32 位和 64 位二进制文件会有不同的限制。