Haskell程式:將長整型變數轉換為整型


在Haskell中,我們可以使用`fromIntegral`函式以及`toInteger`和`truncate`函式,`div`和`mod`函式來將長整型變數轉換為整型。在第一個例子中,我們將使用`(let intVar = fromIntegral longVar :: Int)`,在第二個例子中,我們將使用`(let highPart = fromIntegral (longVar `div` 2^32) :: Int and let lowPart = fromIntegral (longVar `mod` 2^32) :: Int)`。

演算法

  • 步驟1 - 程式執行將從`main`函式開始。`main()`函式控制整個程式。它被寫成`main = do`。

  • 步驟2 - 變數“longVar”被初始化。它將儲存要轉換為相應整數值的長整型變數。

  • 步驟3 - 呼叫`fromIntegral`函式並將`longVar`作為引數傳遞給它。

  • 步驟4 - 函式呼叫後,使用`putStrLn`語句將結果整數值列印到控制檯。

示例1

在這個例子中,函式是使用`fromIntegral`函式定義的,用於將長整型變數轉換為`Int`。

main :: IO ()
main = do
   let longVar = 123456789123456789
   let intVar = fromIntegral longVar :: Int
   putStrLn $ "The long value is " ++ show longVar ++ "."
   putStrLn $ "The corresponding integer value is " ++ show intVar ++ "."

輸出

The long value is 123456789123456789.
The corresponding integer value is 123456789123456789.

示例2

在這個例子中,函式是使用`fromIntegral`和`truncate`函式定義的,用於將長整型變數轉換為`Int`。

main :: IO ()
main = do
   let longVar = 123456789123456789
   let intVar = truncate (fromIntegral longVar :: Double) :: Int
   putStrLn $ "The long value is " ++ show longVar ++ "."
   putStrLn $ "The corresponding integer value is " ++ show intVar ++ "."

輸出

The long value is 123456789123456789.
The corresponding integer value is 123456789123456789.

示例3

在這個例子中,函式是使用`fromIntegral`和`toInteger`函式定義的,用於將長整型變數轉換為`Int`。

main :: IO ()
main = do
   let longVar = 123456789123456789
   let intVar = fromIntegral (toInteger longVar) :: Int
   putStrLn $ "The long value is " ++ show longVar ++ "."
   putStrLn $ "The corresponding integer value is " ++ show intVar ++ "."

輸出

The long value is 123456789123456789.
The corresponding integer value is 123456789123456789.

示例4

在這個例子中,函式是使用`fromIntegral`函式定義的,用於將長整型變數轉換為`Int`。

main :: IO ()
main = do
   let longVar = 123456789123456789
   let highPart = fromIntegral (longVar `div` 2^32) :: Int
   let lowPart = fromIntegral (longVar `mod` 2^32) :: Int
   let intVar = highPart * 2^32 + lowPart
   putStrLn $ "The long value is " ++ show longVar ++ "."
   putStrLn $ "The corresponding integer value is " ++ show intVar ++ "."

輸出

The long value is 123456789123456789.
The corresponding integer value is 123456789123456789.

結論

在Haskell中,長整型變量表示一個64位有符號整數,而整型變量表示一個依賴於機器的有符號整數,通常是32位或64位,這取決於平臺。因此,如果長整型值太大而無法放入整型中,則將長整型變數轉換為整型變數可能會導致精度損失。在Haskell中,可以使用`fromIntegral`函式以及`truncate`和`toInteger`函式,以及`div`和`mod`函式將長整型變數轉換為整型。

更新於:2023年3月13日

215 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告