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 编程语言中实现一个程序,将十进制数转换为二进制数。

更新于: 2022-12-15

643 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告