in reply to decimal to binary conversion

Hi there

please try this version of your code, it worked for me ^_^

#!/usr/bin/perl -w use strict; use warnings; print "Enter decimal number less than 256:"; my $decimal; $decimal=<STDIN>; chomp $decimal; # $decimal += 0; print (($decimal & 0x80) <=> 0); print (($decimal & 0x40) <=> 0); print (($decimal & 0x20) <=> 0); print (($decimal & 0x10) <=> 0); print (($decimal & 0x08) <=> 0); print (($decimal & 0x04) <=> 0); print (($decimal & 0x02) <=> 0); print (($decimal & 0x01) <=> 0);

Replies are listed 'Best First'.
Re^2: decimal to binary conversion
by AnomalousMonk (Archbishop) on Jun 05, 2015 at 01:14 UTC

    What is the reason for the n <=> 0 comparison?


    Give a man a fish:  <%-(-(-(-<

      The usage for <=> here in the masking expreasion ($decimal & 0x80) is to test if this 8th bit is zero or one, also you can do it like:

      #!/usr/bin/perl -w use strict; use warnings; print "Enter decimal number less than 256:"; my $decimal; $decimal=<STDIN>; chomp $decimal; # $decimal += 0; print (($decimal & 0x80)? (1) : (0) ); # to test the 8th bit print (($decimal & 0x40)? (1) : (0) ); # to test the 7th bit print (($decimal & 0x20)? (1) : (0) ); # to test the 6th bit print (($decimal & 0x10)? (1) : (0) ); # to test the 5th bit print (($decimal & 0x08)? (1) : (0) ); # to test the 4th bit print (($decimal & 0x04)? (1) : (0) ); # to test the 3th bit print (($decimal & 0x02)? (1) : (0) ); # to test the 2nd bit print (($decimal & 0x01)? (1) : (0) ); # to test the 1st bit

        Are so many parentheses needed with the lower precedence  ? : Conditional Operator? Also, rather than using what looks like an unrolled loop for printing bits, is there any way to use a while- or for-loop here?


        Give a man a fish:  <%-(-(-(-<