ECMAScript 6负二进制文字

时间:2016-06-15 17:46:20

标签: javascript binary ecmascript-6

借助EMCAScript6,我发现可以使用0b0B前缀来表示binary literals。我正在尝试它,并且找不到表示负数的方法(因为它没有使用两个补码)。我错过了什么吗?我无法找到实际规范中解释二进制文字的位置。

我想我可以通过~(num - 1)-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));




1 个答案:

答案 0 :(得分:0)

要输入负数,只需在文字前加上-符号(一元减号运算符):

-0b11010 // -26

二进制文字的规范在Numeric Literals部分。

相关片段:

  

NumericLiteral ::(...)BinaryIntegerLiteral

     

BinaryIntegerLiteral :: 0b BinaryDigits

BinaryDiggits01