【发布时间】:2016-05-30 16:13:11
【问题描述】:
我的问题是:是否可以在 Haskell 中以 128 位显示 (2^63::Int)?
因为 Int abs(2^63::Int) 不会因为 Int 而工作,但是如果我有一台 128 位计算机或编译器,是否可以显示结果?
当然,如果可能的话,请给我指路:)
【问题讨论】:
-
如果可以在 128 位 comp 上使用,我需要 Int。或者以某种方式......当然,它可以使用 Integer,但我的问题与此无关
-
你有一台 128 位的电脑? ...还有一个 Haskell 编译器呢?
-
搜索“Haskell int 128bit”会立即找到
Data.FixedPoint,它提供了Int128数据类型(甚至更大的类型)。还有Data.DoubleWord包。 AFAIK 对Int的唯一保证是它至少有 29 位。在 64 位机器上,它可能允许更大的值,但不能保证。 -
这与你拥有什么架构完全无关。您可以在 16 位机器上轻松显示 2⁶³(或 2¹⁰⁰⁰)。当然它不会使用机器大小的数字类型,但是这有什么关系呢?当然,机器字的性能最快,但如果您显示整个数字,它们的性能无论如何都超出了预期。