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 程式語言中實現一個程式,將十進位制數轉換為二進位制數。