二进制数Scala中的零和一

时间:2017-11-06 22:06:47

标签: scala binary decimal data-conversion

我已从文件中读取了一些二进制表示,然后我将它们相加并尝试查找零的数量和一次出现。 问题是某些数字会丢失或发生其他任何事情,因此总和中的总位数大于零和一的数字之和。 这是我的代码:

val binaryNums = Source.fromFile("path/task2.txt").getLines.map(BigInt(_)).toList
val sumOfBins = binaryNums.sum.toString
println("Zeroes occurrence " + sumOfBins.count(_ == '0'))
println("Ones occurrence " + sumOfBins.count(_ == '1'))

如果你帮我找错了,我将非常感激。

更新:文件内容如下所示(每个数字约800位) enter image description here

1 个答案:

答案 0 :(得分:1)

默认情况下toString将数字转换为十进制表示。要转换为二进制文件,您必须为toString提供基数参数:

val sumOfBins = binaryNums.sum.toString(2)