(defun fbin (n)
(setq alst '(30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0))
(if (= (rem n 2) 1) (setq flag nil)(setq flag 1))
(setq lst nil)
(while (> n 1)
(setq i (fix (/ (log n) (log 2))))
(setq lst (cons i lst))
(setq n (- n (lsh 1 i)))
)
(if (null flag) (setq lst (cons 0 lst)))
(setq alst (member (last lst) alst))
(setq blst (mapcar '(lambda (x) (if (member x (reverse lst) ) 1 0)) alst))
blst
)
(fbin 1000000)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun sr (str)
(setq strlst (mapcar '(lambda (x) (- x 48)) (vl-string->list str)))
strlst
)
(defun ften->bin (lst)
(setq blst nil binstr nil)
(while (apply 'or (mapcar '(lambda (x) (/= x 0)) lst ))
(setq flag 0)
(setq lst (mapcar '(lambda (x)
(setq z (/ (+ (* flag 10) x) 2))
(setq flag (rem (+ (* flag 10) x) 2))
z
)
lst
)
)
(setq blst (cons flag blst))
)
(setq binstr (apply 'strcat (mapcar '(lambda (x) (itoa x)) blst)))
binstr
)
(ften->bin (sr (getstring "请输入十进制数n=")))