ブックマーク / mandm-ls.hatenadiary.org (1)

  • 【Ruby】ファイルにバイナリデータを書き込む - mandm_lsの日記

    外部から取得した整数を32ビットのバイナリ形式でファイルに書く、 ということがやりたかったのだが、リファレンスを読んでも 数値から直接バイナリ配列(のString)を得る方法が見つからなかった。 そのため面倒くさいとは思いつつも複数段階を経て変換を行った(<1>)。 <1> hex_string = sprintf("%#010x", number) #まず16進数の文字列として表す 2.step(hex_string.bytesize - 2, 2) do |index| #文字列の頭の"0x"を無視して binary_array << hex_string[index, 2].hex.chr #2文字ずつ取り出し数値に変換、 end #次に文字列型へ変換 ところが、実はArrayクラスに直接変換するメソッドpackがあることを発見。 packを使うとファイル出力と合わせても3行で終了(

    【Ruby】ファイルにバイナリデータを書き込む - mandm_lsの日記
  • 1