我需要将 Clojure 中的 Integer 的所有 32 位都转换为 String 格式。
当前:(整数/toBinaryString 10)->“1010”
所需:(整数/toBinaryString 10)->“0000000000001010”
我怎样才能轻松有效地做到这一点?
对于无符号整数,可以clojure.pprint/cl-format直接使用。此示例格式化n为至少 32 个字符的二进制字符串,左填充0字符:
(require '[clojure.pprint :as pp])
(defn unsigned-binary-32 [n]
(pp/cl-format nil "~32,'0B" n))
Run Code Online (Sandbox Code Playgroud)
对于有符号整数,需要更多一点:
(defn signed-binary-32 [n]
(unsigned-binary-32 (bit-and n 0xffffffff)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |