jingweirensh 发表于 2008-4-6 15:50:00

关于16进制

请问高手怎样用lisp,16进制--十进制转换?

ZZXXQQ 发表于 2008-4-6 16:30:00



;将一个字符串按BASE做为基数的进制转换为十进制的整数值
(defun 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
)
;功能
;将一个字符串按BASE做为基数的进制转换为十进制的整数值
;语法
;(baseToDecimal base val )
;参数
;base:一个代表所要转换的进制(BASE2、BASE8、BASE16等)基数整数。
;val:一个进行转换的字符串。
;返回值
;十进制的整数值
;样例
;(baseToDecimal 16 "FA")
;(baseToDecimal 2 "101")
;(baseToDecimal 8 "34")


TLQ 发表于 2021-1-13 07:41:54

哎怎么看不见内容
页: [1]
查看完整版本: 关于16进制