LoginSignup
0
0

More than 1 year has passed since last update.

Rubyでbit配列をファイルに書き込む方法

Last updated at Posted at 2023-06-18

例えば、01000001 01000010 01000011というbit配列をファイルに書き込みたいとする。

(予備知識1) array#pack

以下のように、配列の中の各Intgerを、それに対応するcharにマッピングする。

[29] pry(main)> [65, 66, 67].pack("C*")
=> "ABC"

(予備知識2) Integerを、bit配列チックに書く方法

Integerを、bit配列チックに書くには以下のようにすれば2進数表記(0b)を使えば良い。

[30] pry(main)> 0b01000001
=> 65

bit配列をファイルに書き込む方法

[23] pry(main)> [0b01000001, 0b01000010, 0b01000011].pack("C*")
=> "ABC"

これをファイルにバイナリモードで(?)書き込んでやれば良い。つまり、

[32] pry(main)> File.open("file", "wb") do |f|
[32] pry(main)*   f.write([0b01000001, 0b01000010, 0b01000011].pack("C*"))
[32] pry(main)* end  
=> 3

cの説明をしておく。

今回は、それぞれの0bxxxxxxxxを1byteにマッピングする必要があるので、C=unsigned char (8bit 符号なし整数)を使用した。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0