[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Conversion mask in hex to bit mask

Marcin Tyman

5/6/2008 11:29:00 AM

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
--
Posted via http://www.ruby-....

4 Answers

Todd Benson

5/6/2008 2:54:00 PM

0

On Tue, May 6, 2008 at 6:29 AM, Marcin Tyman <m.tyman@interia.pl> wrote:
> 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

Robert Klemme

5/6/2008 5:05:00 PM

0

On 06.05.2008 13:29, Marcin Tyman 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

Todd Benson

5/6/2008 7:25:00 PM

0

On Tue, May 6, 2008 at 12:10 PM, Robert Klemme
<shortcutter@googlemail.com> wrote:
> On 06.05.2008 13:29, Marcin Tyman 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

Robert Klemme

5/6/2008 8:16:00 PM

0

On 06.05.2008 21:25, Todd Benson wrote:
> On Tue, May 6, 2008 at 12:10 PM, Robert Klemme
> <shortcutter@googlemail.com> wrote:
>> On 06.05.2008 13:29, Marcin Tyman 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.

Sounds reasonable. Marcin?

robert