flags
by Richard Hunter
JavaScript
function b(dec) {
return (dec >>> 0).toString(2).padStart(4, '0');
}
function d(binary) {
return parseInt(binary, 2);
}
let flags = 0;
const flagA = 1 << 3; // 1
const flagB = 1 << 2; // 2
const flagC = 1 << 1; // 4
const flagD = 1 << 0; // 8
function isSet(flag) {
return !!(flags & flag);
}
function oneOf(flag1, flag2) {
return !!(flags & (flag1 | flag2));
}
function setFlag(flag) {
flags |= flag;
}
function unsetFlag(flag) {
flags &= ~flag;
}
function setFlags(flag1, flag2) {
flags |= flag1 | flag2;
}
function printState() {
console.log(b(flags));
}
//setFlag(flagA);
//setFlag(flagB);
setFlag(flagA);
console.log(oneOf(flagA, flagB));