Welcome to WebmasterWorld Guest from 54.204.162.36

Forum Moderators: open

binary what where?

   
12:32 am on Apr 26, 2014 (gmt 0)

WebmasterWorld Senior Member lucy24 is a WebmasterWorld Top Contributor of All Time Top Contributors Of The Month



Quick question for someone who speaks javascript:

This expression
((gRoofLocked & 2^number) != 0)
evaluates to "true" for the appropriate values of the variables involved (currently 31 and some number in the range 1-4).
This expression
(gRoofLocked & (2^number) != 0)
does not.

Question: What, then, does it evaluate to? Is there some weird sequence of operators that I can't figure out?

The fate of the universe does not depend on my learning the answer. But it niggles at me anyway.
1:24 am on Apr 26, 2014 (gmt 0)

WebmasterWorld Senior Member fotiman is a WebmasterWorld Top Contributor of All Time 5+ Year Member Top Contributors Of The Month



The != operator has a higher precedence than the & operator, so your second expression can be written like this:
(gRoofLocked & ((2 ^ number) != 0))

I haven't plugged in any numbers, but I imagine that would give you different results than your first example, which would evaluate like this:
(((gRoofLocked & 2) ^ number) != 0)

[developer.mozilla.org...]
1:38 am on Apr 26, 2014 (gmt 0)

WebmasterWorld Senior Member fotiman is a WebmasterWorld Top Contributor of All Time 5+ Year Member Top Contributors Of The Month



Note, one of these will evaluate to a boolean while the other will evaluate to a number.
7:32 am on Apr 26, 2014 (gmt 0)

WebmasterWorld Senior Member lucy24 is a WebmasterWorld Top Contributor of All Time Top Contributors Of The Month



Follow-up:

Timestamp says it took me pretty exactly seven hours to figure out that I don't mean 2^blahblah. I mean Math.pow(2,blahblah).

###

Working properly now.
 

Featured Threads

My Threads

Hot Threads This Week

Hot Threads This Month