我需要一个程序,可以让我输入二进制数,然后将其转换为十进制数并返回给我。
binToDec :: Integer -> Integer
binToDec 1110101011111111000000111100001010101011110010000001 = 4134096010394753
binToDec 111111111111111111111111111111111111111111111111111111111111111 = 9223372036854775807
我希望以上示例的编译时间能在5秒内完成。
我已经设法做到了,但问题是它始于一个整数列表:
binToDec l = sum $ map (2^) $ findIndices (==1) $ reverse l
Integer
类型。一个字符串输入或者一个布尔值列表会更加合适。 - Bergi-XBinaryLiterals
扩展。 - leftaroundabout