With EMCAScript6, I see there's a way to represent binary literals using the 0b
or 0B
prefix. I was experimenting with it, and couldn't find a way to represent a negative number (since it's not using two's-complement). Am I missing something? I can't find where binary literals are explained in the actual spec.
I suppose I could implement it myself with an operation like ~(num - 1)
or -num
:
function twosComplement(num) {
return ~(num - 1);
}
var flag = 0b100;
console.log(flag);
console.log(twosComplement(flag));
// is this output normal? I thought binary used a sign bit
console.log(twosComplement(flag).toString(2));
To input negative number just prefix your literal with
-
sign (unary minus operator):Specification for binary literals is in section Numeric Literals.
Relevant fragment:
And
BinaryDiggits
are0
and1
.