我有一个介于1和2之间的十进制数字序列。在得到它们的倒数之后,我想要以二进制形式转换的数字,以便我可以隔离倒数的10个MSB。 我不想在IEEE-754浮点表示中转换它,而只是以二进制格式转换它。
reciprocal = 1.0/3.0
Double = 0.3333333333333333
手动转换为二进制文件的上述数字将为我提供无限比特流:
reciprocalBits = 0.0101010101010101010101010101010101010101010101010101...
我想要上述二进制数的10个最重要的位。
如何在Scala中将reciprocal
转换为reciprocalBits
。
答案 0 :(得分:1)
scala> val reciprocal = 1.0/3.0
reciprocal: Double = 0.3333333333333333
scala> List.tabulate(10)(x => ((reciprocal * math.pow(2,x)).toInt % 2))
res0: List[Int] = List(0, 0, 1, 0, 1, 0, 1, 0, 1, 0)