找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 742|回复: 2

[求助] [求助]:lisp中如何转换16进制字符到十进制数字

[复制链接]
发表于 2007-9-5 12:53:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
rtos处理的对象是数字。不是字符。现在有个16进制的字符
如16进制字符:“2CD21CE”----------------
如何转?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-9-5 13:03:02 | 显示全部楼层

不记得在哪抄来的了!


  1.   [FONT=courier new]
  2. ;;; (txt-basetodecimal base val)
  3. ;;; 将一个字符串按base的做为基数的进制转换为十进制的整数值
  4. ;;; base:一个代表所要转换的进制(base2、base8等)基数整数。
  5. ;;; val:一个进行转换的字符串。
  6. ;;; 返回值
  7. ;;; 十进制的整数值
  8. ;;; ------------------------------------------------------------------------
  9. (defun txt-basetodecimal (base val / pos power result tmp)
  10.   (setq pos (1+ (strlen val))
  11.         power -1
  12.         result 0
  13.         val (strcase val)
  14.   )
  15.   (while (> (setq pos (1- pos))
  16.             0
  17.          )
  18.     (setq result (+ result (* (if (> (setq tmp (ascii (substr val pos 1)))
  19.                                      64
  20.                                   )
  21.                                 (- tmp 55)
  22.                                 (- tmp 48)
  23.                               ) (expt base (setq power (1+ power)))
  24.                            )
  25.                  )
  26.     )
  27.   )
  28.   result
  29. )
  30. ;;; ------------------------------------------------------------------------
  31. ;;; command:
  32. ;;; (txt-basetodecimal 16 "fa")
  33. ;;; 250
  34. ;;; command:
  35. ;;; (txt-basetodecimal 16 "efa")
  36. ;;; 3834
  37. ;;; command:
  38. ;;; (txt-basetodecimal 2 "01101010011110")
  39. ;;; 6814
  40. ;;; command:
  41. ;;; (txt-basetodecimal 8 "123654723")
  42. ;;; 21977555
  43.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-5 16:05:53 | 显示全部楼层
原我以为有个函数就可以转了。还是要编出一个局部函数来。
^_^
总之谢谢楼上的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 04:53 , Processed in 0.212944 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表