バイト配列(Node.jsバッファ)に32ビット整数を書き込もうとしています。Pythonでバッファに32ビット整数を書き込む
私が知っているように、Node.jsバッファオブジェクトallocUnsafe
関数は、16進形式でエンコードされた擬似乱数生成配列の配列を返します。
は、だから私は、PythonでのNode.js Buffer.allocUnsafe(n)
法解釈:
[c.encode('hex') for c in os.urandom(n)]
をしかし、その後、allocUnsafe
機能は独自のネストされた関数writeInt32BE(value, offset)
とwriteInt32LE(value, offset)
を持って、私は、公式ドキュメントを読んでいるが、私はしませんでしたこれらの関数から正確に返されたものを理解する。
これらのNode.js関数にはPythonの同等のメソッドがありますか?私はPythonの同等のアクションがstruct
モジュールとfrom_bytes
メソッドでも実行できることを知っているように、しかし、私はどのようにわからない。前もって感謝します。
こんにちは、感謝を整数に変換する16進数表現をチェックアウトすることができます。私が誤解して申し訳ありませんが、 '28 9f 04 03 01 00 00 00 04 00'のNode.jsバッファは' writeUInt32BE'メソッドで '6'を返しますが、Pythonの' int.from_bytes(b '(\ x9f \ x04 \ 'big '、signed = False)' 191827980698406220727296'引数を間違って入力しましたか?(from_bytes関数の最初の引数はNode.jsのバッファー文字が16進数でデコードされています) 。 – ShellRox
@ShellRox上記の6のバッファ表現からロジックを動かすことができますか? –
これを逃してお詫び申し上げます。私は 'Buffer.allocUnsafe(10).writeUInt32BE(2、2)'を使って6を得ました。 – ShellRox