愚直な例
(defun oct2dec (oct)
(when (numberp oct)
(setq oct (int-to-string oct)))
(let ((cl (mapcar 'char-to-string (string-to-char-list oct)))
(dec 0))
(while cl
(setq dec (+ dec (string-to-int (car cl)))
cl (cdr cl))
(when cl
(setq dec (* 8 dec))))
dec))