Powers Gone Wrong?

From: Date: Fri, 02 Jun 2000 20:13:31 +0000
Subject: Powers Gone Wrong?
Groups: php.general php.version4 
Request: Send a blank email to php-general+get-922@lists.php.net to get a copy of this message
Hiya, I'm a bit of a newbie to PHP (although I know quite a bit of Perl), and I wrote some code to test out Powers (<<). It all seams to be working fine, until it gets to 2^0 (two to the power zero). It should be 1 and it's giving me 0. Written into the code is a tester, for converting a number to binary. It's a prototype for a selection I'm writing. Depending on what someone what's they add up all of the numbers of the options, and this will decode them. If you call powers.php?power=5, bit 2 and bit 0 should show positive, so selection 1 and 4 will run. If you call 6, bit 2 and 1 should show positive, but bit 0 does as well, as it's coming out 0. This is my fault, or a possible bug? I think I've got it right. All the other powers (bit 8 = 256, bit 16 = 65,536) seam correct, but why 0? Thanks. ---powers.php---------------------------------- <html> <head> <title>PHP Testing - Powers</title> </head> <body> <pre> <?php $binary=""; for ($i=16; $i>=0; $i--) { echo "2<<".$i." = ".(2 << ($i-1))."\n bit ".$i; if (($power-(2 << ($i-1))) >= 0) { $power -= (2 << ($i-1)); $binary .= "1"; echo " -> <font color=#ff0000>Positive</font>\n"; } else { echo " -> Negative\n"; $binary .= "0"; } } echo "Binary : ".$binary."\n\n\n"; ?> </pre> </body> <html> ----------------------------------------------- Give it a go. I can't see the problem, unless it's my understanding ;-) Thanks again. - - - - - - - - - - - - - - - - - - - - Jonathan Wright [DjNA] mail@djna.fsnet.co.uk www.djna.fsnet.co.uk ICQ [21961373]

« previous php.general (#922) next »