だから私はいくつかのMongoDBプロトコルのものに取り組んでいます。すべての整数はリトルエンディアンで署名されています。Rubyの標準的な方法を使用して、整数からArray#pack
必要なバイナリ文字列に変換できます。
positive_one = Array(1).pack('V') #=> '\x01\x00\x00\x00'
negative_one = Array(-1).pack('V') #=> '\xFF\xFF\xFF\xFF'
ただし、逆に言えば、このメソッドには、特に符号なし整数String#unpack
を返すものとして文書化された「V」形式があります。
positive_one.unpack('V').first #=> 1
negative_one.unpack('V').first #=> 4294967295
符号付きリトルエンディアンのバイトオーダー用のフォーマッタはありません。ビットシフトを使ってゲームをプレイしたり、配列パッキングを使用しない独自のバイトマングリングメソッドを作成したりできると確信していますが、他の誰かがこれに遭遇して簡単な解決策を見つけたのではないかと思います。どうもありがとう。