Haskell 程序将十进制数转换为二进制数
本教程讨论了在 Haskell 编程语言中编写一个程序,将十进制数转换为二进制数。Haskell 是一种声明式、强类型和函数式编程语言。Haskell 中的计算是数学函数。
在十进制数系统中,每个数字都用 0 到 9 之间的数字表示。这个数字系统也称为基数 10 数系统。例如,数字 **四百九十一** 表示为 491(4*10^2 + 9*10^1 + 1*10^0)。
在二进制数系统中,每个数字都用 0 到 1 之间的数字表示。这个数字系统也称为基数 2 数系统。例如,数字 **九十一** 表示为 1011011(1*2^6 + 0*2^5 + 1*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0)。
算法步骤
声明函数 toBinary 将十进制数转换为表示十进制数的二进制形式。
创建主函数并分配需要转换为二进制的十进制值。
使用 toBinary 函数转换十进制数
打印最终输出
示例
将十进制数转换为二进制数的程序
-- function declaration toBinary :: Int->[Char] -- function definition -- base case-1 toBinary 0 = [] -- base case-2 toBinary 1 = show 1 toBinary n = toBinary n1 ++ d where r = mod n 2 d = show r n1 = div n 2 main :: IO() main = do -- initializing a variable number let number = 91 -- invoking the function toBinary let binNumber = toBinary number print ("The binary form of the decimal number "++ show number ++ " is:") print (binNumber)
输出
"The binary form of the decimal number 91 is:" "1011011"
描述
我们声明了一个函数 toBinary,它接受一个整数作为参数并返回一个字符串(字符列表)。它的函数定义接受一个整数 n 作为参数,并返回对自身进行递归调用,参数为 n1 与变量 d 的连接。n1 和 d 的值在以下几行中计算。其中 Haskell 中的关键字可用于拆分复杂的逻辑。
使用模运算符计算数字 n 除以 2 的余数,并将结果加载到变量 r 中。使用函数 show 将整数 r 转换为字符串,并将返回的字符串值加载到变量 d 中。
使用函数 div 计算数字 n 除以 2 的商,并将结果加载到变量 n1 中。
函数 toBinary 将十进制数转换为表示十进制数的字符串形式。
在主函数中,变量 number 初始化为十进制数 91。使用变量 number 作为参数调用函数 toBinary,并将返回的二进制字符串加载到变量 binNumber 中。最后,使用 print 函数打印输出。
结论
本教程讨论了在 Haskell 编程语言中实现一个程序,将十进制数转换为二进制数。