【问题标题】:Clojure unsigned 64-bit integersClojure 无符号 64 位整数
【发布时间】:2014-02-08 09:52:39
【问题描述】:

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

我只会在按位运算中使用它,所以从技术上讲,二进制数据表示的数值并不那么重要,但我仍然希望将数字 >263 显示为正数我println他们时的整数。

【问题讨论】:

    标签: clojure


    【解决方案1】:

    我建议只编写一个自定义函数,将您的 long 转换为具有适当无符号表示的字符串。

    类似:

    (defn long-str [x] 
         (if (> x 0) 
           (str x)
           (str (+ (bigint x) 18446744073709551616N))))
    
    (long-str -1)
    => "18446744073709551615"
    

    【讨论】:

    • 或者我可以让我的方法返回bigint 并让用户进行转换。谢谢,我不知道bigint
    猜你喜欢
    • 1970-01-01
    • 2018-11-05
    • 2011-11-10
    • 2012-02-11
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    相关资源
    最近更新 更多