如何在Clojure中定义无符号 long
? (或者标准库中是否有任意大小的整数,例如某种 BigInt 或 BigNum ?)
我只在按位操作中使用它,所以从技术上讲,二进制数据表示的数值并不那么重要,但我仍然希望数字> 2 63 显示为我println
时的正整数。
答案 0 :(得分:1)
我建议只编写一个自定义函数,将long
转换为具有相应无符号表示的字符串。
类似的东西:
(defn long-str [x]
(if (> x 0)
(str x)
(str (+ (bigint x) 18446744073709551616N))))
(long-str -1)
=> "18446744073709551615"