byte - 将字节字符串转换为十进制
问题描述
我正在寻找最简单的解决方案,将字节字符串(形式为“\000\001\002\003”)转换为 OCaml 中的十进制数。
谢谢大家!
解决方案
嗯,字节和字符串是 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
表示输入无效)。或者您可以为无效输入引发异常。
推荐阅读
- javascript - CKeditor:如何在保存时平衡 HTML 标签?(他们平衡负载)
- java - JavaFX - 使用比例获取 MouseEvent 位置
- c# - C#如何在缩放后获得原始屏幕边界
- powershell - Windows PowerShell 中的管道
- spring - 使用程序集描述符设置 Spring Boot pom.xml
- docker - Docker 无法与 Internet 通信(docker0 bridge linkdown)
- javascript - 使用命名空间导入 React 组件
- javascript - Node.js / JS - 直接 csv 数据操作?
- javascript - 将 Javascript 链接添加到整个 Flexbox 项
- xml - 在 XSLT 2.0 中将小写转换为大写