我对计划很陌生。我知道如何从十进制转换为二进制,但是我无法提供另一种转换逻辑。我想从二进制数列表中获取一个十进制数。
小数示例:
(decimal '(1 0 1)) ---> 5
十六进制示例:
(hexadecimal '(1 0 0 0 1)) ----> 12
到目前为止,我认为可以采用列表的最后一个数字并将其递归乘以2i来完成,其中i表示列表中的位置,因此最后一个数字乘以1,再乘以下一个,依此类推。最后,在每个递归循环上添加这些数字。不知道如何执行这个想法,或者它是否会起作用。
最佳答案
您对解决方案的书面描述是正确的-您需要做的只是
做就是执行它。几个指针:
如果您反转列表,逻辑会容易得多
将每个数字的权重和累加和传递为
递归函数的参数使其更简单
您走在正确的轨道上-继续努力。伪代码尝试可能
为您弄清楚。
关于list - 在方案中将包含二进制数的列表转换为十进制和十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12738331/