On 20 August 2010 17:41, Peter Lind <peter.e.l...@gmail.com> wrote:
> On 20 August 2010 17:10, Andy McKenzie <amckenz...@gmail.com> wrote:
>> Hey everyone,
>>
>>  I'm really not sure what's going on here:  basically, the bitwise
>> NOT operator seems to simply not work.  Here's an example of what I
>> see.
>>
>> ============Script============
>>
>> $ cat bintest2.php
>>
>> <?php
>>
>> $bin = 2;
>> $notbin = ~$bin;
>>
>> echo "Bin: " . decbin($bin) . "  !bin:  " . decbin($notbin) . "\n";
>> echo "Bin: $bin  !bin:  $notbin\n";
>>
>>
>> ?>
>> =============================
>>
>>
>> ============Output============
>>
>> $ php bintest2.php
>> Bin: 10  !bin:  11111111111111111111111111111101
>> Bin: 2  !bin:  -3
>>
>> =============================
>>
>>
>> Obviously that's not the expected response.  I expect to get something
>> more like this:
>>
>> Bin: 10  !bin:  01
>> Bin: 2  !bin:  1
>>
>>
>> Can anyone shed some light on this for me?  The server is running an
>> old version of OpenSUSE, and php --version returns:
>>
>
> You probably need to read up on computer architechture and CS theory -
> the ~ operator works fine, your understanding does not. What you're
> looking at is the following:
>
> $bin = 2 = 00000000000000000000000000000010 (64 bit number)

32-bit number, as Colin pointed out.

Peter

-- 
<hype>
WWW: http://plphp.dk / http://plind.dk
LinkedIn: http://www.linkedin.com/in/plind
BeWelcome/Couchsurfing: Fake51
Twitter: http://twitter.com/kafe15
</hype>

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to