carcassonne has asked for the wisdom of the Perl Monks concerning the following question:
I'm scratching my head on this string-to-number conversion. Here's the basis of the problem.
I get from a ncurses multi-box (that has 10 choices) an array of indices as to which check boxes are checked. Like this:
8 1 9
This one shows that checkboxes # 1, 8 and 9 were checked. The first checkbox of the list is # 0.
Now, I want to transfer this to two 8-bit bit-mapped numbers. The number above would yield, as a 16-bit number:
0x0302
I would like to get the following two 8-bit numbers:
0x03 0x02
Is there a way to do this without having any additional module ?
On the other hand, I tried Bit::Vector. It is a surprisingly complete module and I can do this, @sel being the array returned from the ncurses checkbox):
my $vector = Bit::Vector->new(16); $vector->Index_List_Store(@sel); $value = $vector->to_Hex();
Sure enough, $value = 0302. But it is a string, eg: 0x30333032.
How can I get my two bytes out of that ?
Moreover, am I making things more complicated that they should be ? This surely does not make me feel lazy ! ;-)
Thanks !
Al
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Making two 8-bit numbers from indices of set bits
by GrandFather (Saint) on Feb 19, 2007 at 23:21 UTC | |
by diotalevi (Canon) on Feb 20, 2007 at 07:25 UTC | |
|
Re: Making two 8-bit numbers from indices of set bits
by almut (Canon) on Feb 19, 2007 at 23:20 UTC | |
|
Re: Making two 8-bit numbers from indices of set bits
by johngg (Canon) on Feb 19, 2007 at 23:30 UTC | |
by carcassonne (Pilgrim) on Feb 20, 2007 at 02:44 UTC | |
|
Re: Making two 8-bit numbers from indices of set bits
by Anno (Deacon) on Feb 20, 2007 at 10:57 UTC | |
|
Re: Making two 8-bit numbers from indices of set bits
by jeanluca (Deacon) on Feb 20, 2007 at 09:50 UTC | |
by carcassonne (Pilgrim) on Feb 23, 2007 at 12:36 UTC |