Ocaml int到二进制字符串转换

时间:2012-03-19 19:01:47

标签: ocaml type-conversion

Int32转换为二进制文件的最简单方法是什么?例如: -1 - > “\ 255 \ 255 \ 255 \ 255”?

编辑: 要使用extlib,请使用yum和toplevel:

进行安装
#use "topfind";;
#require "extlib";;

2 个答案:

答案 0 :(得分:8)

我建议使用Bitstring来做这种事情。你可以找到它here

例如,在toplevel:

# #use "topfind";;
# #camlp4o;;
# #require "unix";;
# #require "bitstring.syntax" ;;
# let data = Int32.of_int (-1);;
# let bits = BITSTRING { data: 32 } ;;

然后你可以对bitstring执行各种转换,包括将它写入二进制文件或stdout或字符串:

# Bitstring.string_of_bitstring bits ;;
- : string = "\255\255\255\255"

答案 1 :(得分:3)

使用extlib

# let io = IO.output_string ();;
val io : string IO.output = <abstr>
# IO.write_i32 io (-1);;
- : unit = ()
# IO.close_out io;;
- : string = "\255\255\255\255"