Conversion mask in hex to bit mask

M

Marcin Tyman

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
 
T

Todd Benson

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

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

Untested for other masks.

hth,
Todd
 
R

Robert Klemme

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
 
T

Todd Benson

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
 
R

Robert Klemme

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,989
Messages
2,570,207
Members
46,782
Latest member
ThomasGex

Latest Threads

Top