RE: RE: Bitwise operator question
| From: | Philip Hallstrom | Date: | Mon, 03 Mar 2003 21:10:10 +0000 |
| Subject: | RE: RE: Bitwise operator question | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-137964@lists.php.net to get a copy of this message | ||
Yes... it is the | operator that is doing it.
From the man pages:
$a & $b And Bits that are set in both $a and $b are set.
$a | $b Or Bits that are set in either $a or $b are set.
So, let's say:
$a = 5; # 0101
$b = 3; # 0011
Then:
$a & $b
0101
& 0011
= 0001 (1)
and
$a | $b
0101
& 0011
= 0111 (7)
does that help? It's not *summing* the values... although in your case it
looks like it is... it's OR'ing them.
On Mon, 3 Mar 2003, Dan Sabo wrote:
> Thanks Philip,
>
> OK I understand the binary thing but that line, I just don't see it, It's
> not the or operator that's summing up the two binary values is it?
>
> Dan
>
> -----Original Message-----
> From: Philip Hallstrom [mailto:philip@adhesivemedia.com]
> Sent: Monday, March 03, 2003 3:53 PM
> To: Dan Sabo
> Cc: php-general@lists.php.net
> Subject: RE: Bitwise operator question
>
>
> Yes. Oops.
>
> -philip
>
> On Mon, 3 Mar 2003, Dan Sabo wrote:
>
> > Hi Phillip,
> >
> > Don't U mean
> >
> > 0001
> > | 0100
> > = 0101
> >
> > ?
> >
> > Dan
> >
> > -----Original Message-----
> > From: Philip Hallstrom [mailto:philip@adhesivemedia.com]
> > Sent: Monday, March 03, 2003 2:33 PM
> > To: Dan Sabo
> > Cc: php-general@lists.php.net
> > Subject: Re: Bitwise operator question
> >
> >
> > Here's how I think about it...
> >
> > CREATE_RECORDS = 1 in decimal and 0001 in binary.
> > ALTER_RECORDS = 4 in decimal and 0101 in binary.
> >
> > that line returns a binary string where *any* of the bits are 1, so line
> > them up:
> >
> > 0001
> > | 0101
> > = 0101
> >
> > which is 5.
> >
> > On Mon, 3 Mar 2003, Dan Sabo wrote:
> >
> > > Hi,
> > >
> > > I'm reading the description of Bitwise Operators on page 81 of
> > "Professional
> > > PHP 4", the Wrox book. In the highlighted example on that page, the
> line
> > of
> > > code...
> > >
> > > $user_permissions = CREATE_RECORDS | ALTER_RECORDS;
> > >
> > > the description in the book says that this line is building a set of
> user
> > > permissions out of the previously created constants with the OR operator
> > (I
> > > understand what OR means). The value of $user_permissions is set to
> > either
> > > 1 or 4, which is in fact 5 (0101). But how is this single line doing
> > that?
> > > The explanation was cryptic (to me).
> > >
> > >
> > >
> > > --
> > > PHP General Mailing List (http://www.php.net/)
> > > To unsubscribe, visit: http://www.php.net/unsub.php
> > >
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>