如何在Haskell中以二进制或十六进制打印整数常量?
printBinary 5 => "0101"
printHex 5 => "05"
哪些库/函数可以实现这个功能?
我发现了Numeric模块及其showIntAtBase函数,但是一直无法正确使用它。
> :t showIntAtBase
showIntAtBase :: (Integral a) => a -> (Int -> Char) -> a -> String -> String
printf "%032b" 5
- mozbozprintf
函数更像是一个魔术技巧,而不是严肃代码中应该使用的函数。格式字符串在运行时被解析(可能会导致运行时错误),整个机制有点慢。 - dfeuershowIntAtBase
提供补零输出的变体,这真是遗憾。毕竟,如果你正在以二进制或十六进制格式进行格式化,那么你不太可能想要删除所有前导零。 - Andrew Thaddeus Martin