我想将数字转换为二进制字符串,例如(to-binary 11) - > “1011”。
我已经找到了转换为hex和oct的方法:
(format "%x" 11) -> "B"
(format "%o" 11) -> "13"
但显然没有二进制格式字符串(“%b”给出错误)。
转换很简单:(字符串到数字“1011”2) - > 11
还有其他库函数吗?
答案 0 :(得分:3)
虽然我同意这是功能的重复,但如果您在Emacs lisp中询问如何进行比特操作,则可以阅读bitwise operations上的手册。这可能导致像这样的实现:
(defun int-to-binary-string (i)
"convert an integer into it's binary representation in string format"
(let ((res ""))
(while (not (= i 0))
(setq res (concat (if (= 1 (logand i 1)) "1" "0") res))
(setq i (lsh i -1)))
(if (string= res "")
(setq res "0"))
res))