方案二进制列表到小数和

Posted

技术标签:

【中文标题】方案二进制列表到小数和【英文标题】:Scheme Binary List to Decimal Sum 【发布时间】:2020-03-25 14:16:53 【问题描述】:

一个接受二进制数列表并返回其十进制和的函数。

Call: (addBinary '(1101 111 10 101))

(define (addBinary binaryList))

returns 27

【问题讨论】:

请发布您目前编写的代码,以便我们为您提供帮助。还要确保您发布的内容是可编译的有效代码,而不是您发布的代码。不要忘记添加示例输入和预期输出。 您的代码无效,因为您需要在 lambda 列表之后至少有一个表达式。 '(1101 111 10 101) 也不是二进制 '(#b1101 #b111 #b10 #b101) 是。 (+ #b1101 #b111 #b10 #b101) ; ==> 27 当您评估它时。整数实际上没有底,但它的可视化有。 【参考方案1】:

在 Racket 和 Guile 中测试:

(define (addBinary binaryList)
  (foldl ; or fold, depending on dialect
   (lambda (n r)
     (+ r (string->number (number->string n) 2)))
   0 binaryList))

【讨论】:

以上是关于方案二进制列表到小数和的主要内容,如果未能解决你的问题,请参考以下文章

小数的二进制补码

double精确到几位小数

小数怎么转化成二进制数

JS小数运算失精度的问题

oracle系列表操作基础

小数在内存中是如何存储的?