
- [FONT=courier new]
- ;;; (txt-basetodecimal base val)
- ;;; 将一个字符串按base的做为基数的进制转换为十进制的整数值
- ;;; base:一个代表所要转换的进制(base2、base8等)基数整数。
- ;;; val:一个进行转换的字符串。
- ;;; 返回值
- ;;; 十进制的整数值
- ;;; ------------------------------------------------------------------------
- (defun txt-basetodecimal (base val / pos power result tmp)
- (setq pos (1+ (strlen val))
- power -1
- result 0
- val (strcase val)
- )
- (while (> (setq pos (1- pos))
- 0
- )
- (setq result (+ result (* (if (> (setq tmp (ascii (substr val pos 1)))
- 64
- )
- (- tmp 55)
- (- tmp 48)
- ) (expt base (setq power (1+ power)))
- )
- )
- )
- )
- result
- )
- ;;; ------------------------------------------------------------------------
- ;;; command:
- ;;; (txt-basetodecimal 16 "fa")
- ;;; 250
- ;;; command:
- ;;; (txt-basetodecimal 16 "efa")
- ;;; 3834
- ;;; command:
- ;;; (txt-basetodecimal 2 "01101010011110")
- ;;; 6814
- ;;; command:
- ;;; (txt-basetodecimal 8 "123654723")
- ;;; 21977555
- [/FONT]
|