Ruby Tips!

RubyのTipsを紹介します

数値を2進数で整形して表示する

数値を2進数で整形して表示するには、Kernel.#printにフォーマット%bを渡すと良い。以下は数値の下位1バイトを2進数で整形して表示する例である。

printf("%08b\n", 1986 & 0b11111111) #=> 11000010

フォーマット%08bは数値を2進数で8桁で0パディングして整形するという意味である。また下位1バイトを表示するため0b11111111&を取っている。

もし整形して表示するのではなく、文字列を得たいのであれば、Kernel.#sprintfを利用すると良い。以下は数値を2進数で整形した文字列を得る例である。

p sprintf("%08b", 1986 & 0b11111111) #=> "11000010"