如何在 Clojure 中定义无符号 long
? (或者标准库中是否存在任意大小的整数,例如某种 BigInt 或 BigNum?)
我只会在按位运算中使用它,因此从技术上讲,二进制数据表示的数值并不那么重要,但我仍然希望数字 >263 显示为正数当我println
它们时,它们是整数。
最佳答案
我建议只编写一个自定义函数,将您的 long
转换为具有适当无符号表示形式的字符串。
类似于:
(defn long-str [x]
(if (> x 0)
(str x)
(str (+ (bigint x) 18446744073709551616N))))
(long-str -1)
=> "18446744073709551615"
关于Clojure 无符号 64 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21644510/