1

如何编写一个 lisp 程序将给定的十六进制数转换为十进制。有人可以给我一个线索。谢谢你

4

2 回答 2

1

我假设它是一个家庭作业问题,所以我会给你一个正确方向的提示。

以下是如何将十进制转换为二进制 ->

假设你从二进制数字 9 开始,它是 1001。首先将 9 除以 2。你得到 4,余数为 1。保存余数。现在再次将 4 除以 2,得到 2,余数为 0。保存余数。再将 2 除以 2,得到 1,余数为 0。保存余数。将 1 除以 2,最后你得到 0 和提醒 1。保存余数。

如果您向后读取保存的余数,您将得到 1001!您一直在寻找的二进制数。最好将剩余部分压入堆栈并将它们弹出,这样它们就会倒退。

于 2010-10-08T06:43:24.960 回答
1

Common Lisp 已经提供了它。

  • 输入是十六进制整数的字符串。

  • 然后你用基数 16 解析整数

  • 结果是数字

  • 如果将基数为 10 的数字写入输出流,则可以将数字作为基数为 10 的字符串获取

于 2010-10-08T08:29:06.577 回答