BigInt

BigInt 包在 Swift 中提供任意精度整数算术。其功能主要分为以下几类:

BigInt 需要 Swift 5.0。 它还需要 Int 和 UInt 类型为 64 位类型。 BigInt 已经更新,包含了 Leif Ibsen 的更改,直至 v1.19.0。

其文档使用 DocC 插件构建,并发布在 GitHub Pages 上,地址如下:

https://mgriebling.github.io/BigInt/documentation/bigint

文档也包含在 BigInt.doccarchive 文件中。

请注意: 由于 GitHub Pages 中的一个错误,点击某些 BIntBFraction 操作符(例如 < 和 | )会显示以下消息:

The page you're looking for can't be found.

BigInt.doccarchive 文件包含正确的文档。 强调的是,只有文档存在错误。 操作符本身工作正常。

从现在开始,这个 BigInt 变体将镜像 Ibsen 的 BigInt 更改(或多或少),并具有像 BigInt-Extensions.swift 这样的增补文件来实现以 Apple 为中心的协议一致性。

在原始源代码中需要进行两项更改才能支持 BinaryInteger 一致性:

  1. mantissa 重命名为 _mantissa,以避免与协议要求的 mantissa 变量冲突。
  2. 将 Codable 协议添加到 BigInt 结构体定义。 这是一个免费添加,不需要任何额外的代码。 好处包括能够读取和写入包含 BigInts 的 JSON 文件。

支持这些协议极大地简化了 BigDecimal 的添加,并使 BigInt 成为可以与所有其他整数类型互操作的一流公民。