list - 在方案中将包含二进制数的列表转换为十进制和十六进制

标签 list binary scheme hex decimal

我对计划很陌生。我知道如何从十进制转换为二进制,但是我无法提供另一种转换逻辑。我想从二进制数列表中获取一个十进制数。

小数示例:

(decimal '(1 0 1)) ---> 5


十六进制示例:

(hexadecimal '(1 0 0 0 1)) ----> 12


到目前为止,我认为可以采用列表的最后一个数字并将其递归乘以2i来完成,其中i表示列表中的位置,因此最后一个数字乘以1,再乘以下一个,依此类推。最后,在每个递归循环上添加这些数字。不知道如何执行这个想法,或者它是否会起作用。

最佳答案

您对解决方案的书面描述是正确的-您需要做的只是
做就是执行它。几个指针:


如果您反转列表,逻辑会容易得多
将每个数字的权重和累加和传递为
递归函数的参数使其更简单


您走在正确的轨道上-继续努力。伪代码尝试可能
为您弄清楚。

关于list - 在方案中将包含二进制数的列表转换为十进制和十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12738331/

相关文章:

java - 在 kotlin 中使用大小初始化 ArrayList<ArrayList<Int>>

java - 列表中始终显示最后一个元素的信息(Java)

scheme - 给定索引列表重新排列列表

lisp - 使用方案/ Racket 从列表中返回特定项目

emacs - 设置Emacs来运行Scheme代码

python - 将元组作为值附加到字典中的现有键

python - 合并成对列表(元组)?

swift - 第二个变量采用第一个值

c++ - 将 2 字节数分成两个 1 字节

python - 使用 django HttpResponse 返回二进制数据