Clojure 无符号 64 位整数

标签 clojure

如何在 Clojure 中定义无符号 long? (或者标准库中是否存在任意大小的整数,例如某种 BigIntBigNum?)

我只会在按位运算中使用它,因此从技术上讲,二进制数据表示的数值并不那么重要,但我仍然希望数字 >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/

相关文章:

Clojure : Is there any reason to detail arities in functions definition?

clojure - 在 Clojure sql 中,如何使 where 子句不区分大小写?

clojure - GC 是否在 Clojure 中删除 ns 后删除所有对象?

clojure - 如何将 Clojure memfn 与 Java 构造函数一起使用?

clojure - Ring 和 Pedestal 之间有什么关系 - 我是否需要了解 Ring 才能使用 Pedestal?

clojure - 确保 var 在 Clojure 中绑定(bind)

multithreading - Clojure 可变存储类型

clojure - 协议(protocol)中的提示返回类型在 Clojure 中是否有任何影响?

clojure - 为什么我的 Clojure 导入失败?

postgresql - Clojure 应用程序无法使用 SSL 连接到 Heroku Postgres