Conversion mask in hex to bit mask

Hi,
The issue is: how to convert hex mask to bit mask? For instance:

I have 0xffff0000 -> it can be represent by 255.255.0.0 or by string
of bits - 16

My question is how to convert such hexes to bit mask (the 16 in above
example)

Thanks in advance,
Have a nice day

On Tue, May 6, 2008 at 6:29 AM, Marcin T. [email protected] wrote:

Thanks in advance,
Have a nice day

irb(main):001:0> 0xffff0000.to_s(2) =~ /0*$/
=> 16

Untested for other masks.

hth,
Todd

On 06.05.2008 13:29, Marcin T. wrote:

The issue is: how to convert hex mask to bit mask? For instance:

I have 0xffff0000 -> it can be represent by 255.255.0.0 or by string
of bits - 16

Not sure what exactly you mean by this. Do you want to count 1’s?

Here are some things you can do:

irb(main):001:0> c = 0xffff0000
=> 4294901760
irb(main):002:0> c.to_s(2)
=> “11111111111111110000000000000000”
irb(main):003:0> c.to_s(2).length
=> 32

Bit access:

irb(main):004:0> c[0]
=> 0
irb(main):005:0> c[20]
=> 1

My question is how to convert such hexes to bit mask (the 16 in above
example)

Cheers

robert

On Tue, May 6, 2008 at 12:10 PM, Robert K.
[email protected] wrote:

On 06.05.2008 13:29, Marcin T. wrote:

The issue is: how to convert hex mask to bit mask? For instance:

I have 0xffff0000 → it can be represent by 255.255.0.0 or by string
of bits - 16

Not sure what exactly you mean by this. Do you want to count 1’s?

I think Marcin wants to eventually convert/print out to shorthand the
representation of an IPV4 address, like how “192.168.1.9/24” means
“192.168.1.9 with netmask 255.255.255.0”, /8 means a 255.0.0.0 mask,
etc.

That was my interpretation anyway.

Todd
Todd

On 06.05.2008 21:25, Todd B. wrote:

I think Marcin wants to eventually convert/print out to shorthand the
representation of an IPV4 address, like how “192.168.1.9/24” means
“192.168.1.9 with netmask 255.255.255.0”, /8 means a 255.0.0.0 mask,
etc.

That was my interpretation anyway.

Sounds reasonable. Marcin?

robert