我正在寻找最简单的解决方案,以将字节字符串(格式为“ \ 000 \ 001 \ 002 \ 003”)转换为OCaml中的小数。
谢谢!
答案 0 :(得分:0)
嗯,字节和字符串是OCaml中的两种不同类型。我假设您正在谈论的是字符串,而不是字节类型的值。
如果您确定输入格式正确,则可以在每个元素上添加“ 0”,然后使用int_of_string
。
let convert s =
let s' =
String.map
(fun c -> Char.chr (Char.code c + Char.code '0'))
s
in
int_of_string s'
这是它的工作方式:
# let convert = ...
val convert : string -> int = <fun>
# convert "\000\001\002\003";;
- : int = 123
要认真使用,您需要验证输入字节是否在正确的范围内。您可以返回类型为int option
的值(其中None
表示输入无效)。或者,您可以为无效输入引发异常。