是否有一个简单的函数可以复制和粘贴来进行此转换? Ruby 的等价物是
bytes.unpack("n*")
最佳答案
使用 cereal
或 binary
包,解码为 16 位无符号整数 (Word16
),然后将该值转换为完整的 整数
:
import Data.Serialize
...
someFunction = ...
let intVal = runGet (fromIntegral `fmap` getWord16be) bytes
编辑:
与 haskell 中的任何 monad 一样,您可以使用更高级别的函数,例如 replciateM
以及上面的代码来获取 int 值列表(下面是未经测试的代码):
import Data.Serialize
...
someFunction = ...
let intVals = runGet (do n <- get
replicateM n (fromIntegral `fmap` getWord16be)) bs
关于haskell - 需要在 Haskell 中将 16 位无符号大端字节解码为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17579545/