BigNumber
一个用于表示大数(256位)的 Swift 库!
这个库**不适用于**密码学;所有操作和函数都是按值传递,而不是按引用。我目前正在努力使这个库也包含仅使用指针的“安全”函数。
工作原理
此库包含名为 BigNumber 的类,它本质上就是一个256位的无符号整数。
由于输入 'BigNumber' 可能会变得相当繁琐,因此它被别名化为 'BN' 和 'UInt256' 以便于您使用 :)
BigNumber(现在将简称为BN或UInt256)是一个包含4个UInt64的大小为4的数组。
在 BigNumber.swift 文件中有公共常量详细说明此信息
/// The size of a big number
public let BN_SIZE = 4
/// Size of BN in Bytes
public let BN_SIZE_IN_BYTES = MemoryLayout<UInt64>.size * BN_SIZE
/// Size of a BN String
public let BN_STR_SIZE = (2 * BN_SIZE_IN_BYTES + 1)
BN使用Little Endian格式来表示大数。要访问数组的特定元素,请使用数组属性
let bn = BN(hexString: "2a")
let firstArrayItem = bn.array[0] // 42
您还可以直接对BN子脚本
let firstArrayItem = bn[0]