バイナリファイルから3バイトを符号なし整数に変換する最良の方法は何ですか?バイナリファイルから3バイトを符号なし整数に変換する最も良い方法は?
これは私の現在の解決策です。私にはわからない
n = *("\x00" + file.read(3)).unpack('N')
:
a, b, c = file.read(3).unpack("C*")
a << 16 | b << 8 | c
バイナリファイルから3バイトを符号なし整数に変換する最良の方法は何ですか?バイナリファイルから3バイトを符号なし整数に変換する最も良い方法は?
これは私の現在の解決策です。私にはわからない
n = *("\x00" + file.read(3)).unpack('N')
:
a, b, c = file.read(3).unpack("C*")
a << 16 | b << 8 | c
Ooh..fun:あなたは余分なバイトを追加した自分を気にしなかった場合
file.read(3).unpack("C*").inject { |r, n| r << 8 | n }
はシンプルかつ巧妙な両方BINDATA宝石
require 'bindata'
n = BinData::Uint24be.read(file)
を使用してください。ありがとうございました ! – skiffr