我正在为一个类或我的类实现RSA加密系统,并且为了能够实现它,我们显然需要将字符串转换为整数然后反过来。使用基本级别的haskell可以有人向我解释如何做到这一点。我有一个函数可以告诉我字符代码的最大长度也可以考虑。
谢谢大家。
答案 0 :(得分:4)
我不确定您需要什么,但如果您只想获得String
的数字表示,则可以使用Data.Char.ord
将Char
转换为Int
Data.Char.chr
。然后,您可以使用Int
将每个Char
转换回import Data.Char (ord, chr)
stringsToInts :: String -> [Int]
stringToInts = map ord
intsToString :: [Int] -> String
intsToString = map chr
。
使用:
Prelude Data.Char> let ints = stringsToInts "Hello world!"
Prelude Data.Char> ints
[72,101,108,108,111,32,119,111,114,108,100,33]
Prelude Data.Char> intsToString ints
"Hello world!"
你可以:
ints
如果您需要(并进一步修改intsToString
),您可以进一步处理列表{{1}}。)
答案 1 :(得分:0)
您还可以使用ByteString
模块:将简单String
转换为ByteString
pack
,然后直接使用它作为字节数组({{ 1}},如果确切的话。)