in reply to Re: Bitwise operators
in thread Bitwise operators

Great, thanks Dave - will have a go tomorrow : )

Replies are listed 'Best First'.
Re^3: Bitwise operators
by davido (Cardinal) on Dec 25, 2006 at 22:14 UTC

    Ok, I've seen what you posted lower down in this thread, and wanted to follow up to my earlier promise to offer some code.

    The following solution will work for any integer, whether it requires 4 bits or 32 to represent it.

    use strict; use warnings; my $number = 75; my $bitval = 1; my $bits = ''; while ( $bitval <= $number ) { my $bit = $number & $bitval ? 1 : 0; $bits = $bit . $bits; $bitval *= 2; } print $bits, "\n";

    $bitval contains the mask value, and is incremente by times two after each iteration. That makes the masks 1, 2, 4, 8, 16, 32.... etc. (look familiar?). The ... ? ... : ... (ternary operator) serves to turn a bit value into just a zero or one. The rest I think you'll figure out as you look at it.


    Dave

      That's cool, thanks again Dave

      Really glad I found this site, working through it on my own would have been a nightmare...