【发布时间】:2014-02-08 09:52:39
【问题描述】:
如何在 Clojure 中定义 unsigned long? (或者标准库中是否有任意大小的整数,例如某种 BigInt 或 BigNum?)
我只会在按位运算中使用它,所以从技术上讲,二进制数据表示的数值并不那么重要,但我仍然希望将数字 >263 显示为正数我println他们时的整数。
【问题讨论】:
标签: clojure
如何在 Clojure 中定义 unsigned long? (或者标准库中是否有任意大小的整数,例如某种 BigInt 或 BigNum?)
我只会在按位运算中使用它,所以从技术上讲,二进制数据表示的数值并不那么重要,但我仍然希望将数字 >263 显示为正数我println他们时的整数。
【问题讨论】:
标签: clojure
我建议只编写一个自定义函数,将您的 long 转换为具有适当无符号表示的字符串。
类似:
(defn long-str [x]
(if (> x 0)
(str x)
(str (+ (bigint x) 18446744073709551616N))))
(long-str -1)
=> "18446744073709551615"
【讨论】:
bigint 并让用户进行转换。谢谢,我不知道bigint。