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 程式語言中實現一個程式,將十進位制數轉換為二進位制數。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP