2

この変換を行うためにコピーして貼り付けることができる簡単な機能はありますか? Ruby に相当するものは次のようになります。

bytes.unpack("n*")
4

2 に答える 2

3

cerealまたはパッケージを使用binaryし、16 ビットの unsigned int ( Word16) にデコードしてから、その値を full に変換しますInteger

import Data.Serialize
...
someFunction = ...
    let intVal = runGet (fromIntegral `fmap` getWord16be) bytes

編集:

Haskell の他のモナドと同様にreplciateM、上記のコードのような高レベル関数を使用して、int 値のリストを取得できます (テストされていないコードが続きます)。

import Data.Serialize
...
someFunction = ...
    let intVals = runGet (do n <- get
                             replicateM n (fromIntegral `fmap` getWord16be)) bs
于 2013-07-10T19:53:58.090 に答える