sterling
sterling

Reputation: 625

Using javascript to decode bit values

Given the following scale:

Mon = 64, Tue = 32, Wed = 16, Thu = 8, Fri = 4, Sat = 2, Sun = 1

How would you create a function that is passed an integer to decode the corresponding days of the week?

For example, say the value 127 was passed, how can you determine what days are included in that value?

Upvotes: 4

Views: 2320

Answers (2)

Šime Vidas
Šime Vidas

Reputation: 185913

function dec2bin(n) {
    return n.toString(2).split('');
}

And then:

dec2bin(127) // returns ['1', '1', '1', '1', '1', '1', '1']

dec2bin(38) // returns ['1', '0', '0', '1', '1', '0']

Upvotes: 4

xconspirisist
xconspirisist

Reputation: 1461

Sounds like a bitmask. You can read about bitmasks here; http://en.wikipedia.org/wiki/Mask_%28computing%29

Sunday would be the 1st bit, Sat the 2nd, etc, Mon the 7th. To see if a day is included, use a binary AND.

var listOfDays = 127;
var hasSun = listOfDays & 1; 
var hasSat = listOfDays & 2;
var hasFri = listOfDays & 4;
// etc

Upvotes: 7

Related Questions