【问题标题】:Haskell 128bit showing [closed]Haskell 128bit 显示 [关闭]
【发布时间】: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¹⁰⁰⁰)。当然它不会使用机器大小的数字类型,但是这有什么关系呢?当然,机器字的性能最快,但如果您显示整个数字,它们的性能无论如何都超出了预期。

标签: haskell 128-bit


【解决方案1】:

根据the Report,这个问题是特定于实现的:

有限精度整数类型Int 至少覆盖范围 [-2^29, 2^29-1]。由于IntBounded 类的一个实例,maxBoundminBound 可用于确定由实现定义的确切Int 范围。

我知道没有任何实现 maxBound :: Int 大于 2^63-1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 2015-02-09
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    相关资源
    最近更新 更多