From: "Daniel Schüle" Date: 2005-11-23T07:37:25+09:00 Subject: Re: How convert an integer to a bit array Curt Hibbs wrote: > Does anyone have a clever way to convert an integer to an array of bit > values? > > For example (using 8 bit integers): > > 0 => [0, 0, 0, 0, 0, 0, 0, 0] > 1 => [0, 0, 0, 0, 0, 0, 0, 1] > 2 => [0, 0, 0, 0, 0, 0, 1, 0] > 7 => [0, 0, 0, 0, 0, 1, 1, 1] > etc. > > I was looking at Array#pack and Array#unpack to do this, but haven't figured > it out yet. It just seems like there ought to be a simple way to do this. > > Anybody got a clever idea? > > Curt irb(main):082:0> x = 7.to_s(2).split(//).map! {|bit| bit.to_i} => [1, 1, 1] irb(main):083:0> x.unshift(0) until x.length == 8 if your number always fit into 8 bit otherwise this doesn't work Regards, Daniel