Robert Cummings wrote:
> On Tue, 2006-06-13 at 11:03, Jochem Maas wrote:
>> Robert Cummings wrote:
>>> On Tue, 2006-06-13 at 06:22, Jochem Maas wrote:
>>>> My brain needs a crutch when trying doing this kind of thing
>>>> (normally I only write hex number literally when dealing with bitwise 
>>>> stuff -
>>>> the conversion stuff still makes my head spin) - this is what this table 
>>>> is for:
>>>>
>>>> 128 64 32 16 8 4 2 1
>>>> 1   0  1  1  0 1 0 1
>>>> 0   1  0  1  1 1 0 0
>>>> 0   0  0  0  1 1 1 1
>>>>
>>>> and then I did this - hopefully it shows what you can/have to do:
>>>>
>>>> <?php
>>>>
>>>> // set some values
>>>> $oldval = 128 + 32 + 16 + 4 + 1; // 10110101
>>>> $update = 64 + 16 + 8 + 4;  // 01011100
>>>> $mask   = 8 + 4 + 2 + 1;    // 00001111
>>> You could just do the following:
>>>
>>> $oldval = bindec( '10110101' );
>>> $update = bindec( '01011100' );
>>> $mask   = bindec( '00001111' );
>> when I was writing the reply I played with about 5 different
>> conversion funcs - pretty everything expect bindec() !!!
>>
>> I guess i was being lazy - but then I alway think directly in hex numbers
>> when doing bitwise stuff (at least I use hex notation for the constant value
>> that I almost invariably end up creating)
>>
>> anyway cheers for the lightbuld moment :-)
> 
> Well yours is at least faster since there's no function calls. Though
> one can also do the following to avoid memorizing decimal bit values :)
> 
> $oldval = (1 << 7) + (1 << 5) + (1 << 4) + (1 << 2) + (1 << 0);
> $update = (1 << 6) + (1 << 4) + (1 << 3) + (1 << 2);
> $mask   = (1 << 3) + (1 << 2) + (1 << 1) + (1 << 0);

cool - more brainfood. thanks!

> 
> :)
> 
> Cheers,
> Rob.

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

Reply via email to