- Haskell Data Analysis Cookbook
- Nishant Shukla
- 272字
- 2021-12-08 12:43:38
Displaying a number in another base
Strings are a natural way to represent numbers in different bases due to the inclusion of letters as digits. This recipe will tell us how to convert a number to a string that can be printed as output.
How to do it...
- We will need to import the following two functions:
import Data.Char (intToDigit, chr, ord) import Numeric (showIntAtBase)
- Define a function to represent a number in a particular base as follows:
n 'inBase' b = showIntAtBase b numToLetter n ""
- Define the mapping between numbers and letters for digits larger than nine as follows:
numToLetter :: Int -> Char numToLetter n | n < 10 = intToDigit n | otherwise = chr (ord 'a' n – 10)
- Print out the result using the following code snippet:
main :: IO () main = do putStrLn $ 8 'inBase' 12 putStrLn $ 10 'inBase' 12 putStrLn $ 12 'inBase' 12 putStrLn $ 47 'inBase' 12
- The following is the printed output when running the code:
$ runhaskell Main.hs 8 a 10 3b
How it works...
The showIntAtBase
function takes in a base, the desired number, and its mapping from number to printable digit. We order our digits in the following manner: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, and so on, up to 36 characters. Putting it all together, we get a convenient way to represent a decimal number in any base.
See also
To read a string representing a number from another base as a decimal integer, refer to the Reading a number from another base recipe.
推薦閱讀
- Qt 5 and OpenCV 4 Computer Vision Projects
- C# 7 and .NET Core Cookbook
- 信息可視化的藝術:信息可視化在英國
- 構建移動網站與APP:HTML 5移動開發入門與實戰(跨平臺移動開發叢書)
- R語言游戲數據分析與挖掘
- Java:Data Science Made Easy
- jQuery開發基礎教程
- Mastering Android Game Development
- Getting Started with Python
- 超簡單:用Python讓Excel飛起來(實戰150例)
- Mastering JavaScript
- SQL Server on Linux
- JavaScript Unit Testing
- Practical Responsive Typography
- Learning Apache Thrift