为什么非二进制数被评估为二进制数

时间:2016-03-24 20:08:26

标签: javascript

以下如何

/// <reference path="kanine.ts" />

评估为8? 我将0xf & 1000 指定为非二进制,运算符1000是否执行到二进制的转换?这也评估为8

&

但第二个数字明确定义为二进制

3 个答案:

答案 0 :(得分:4)

1111101000 // 1000
0000001111 // 0xf
---------- & operator 
0000001000 // 8 in binary system

数字1000dec)和0b1000bin)在二进制表示形式(1000)中具有相同的结尾,且长度与{相同{1}}(二进制四位数 - 0xf

因此,1111运算符的两种情况都会产生相同的结果。

答案 1 :(得分:2)

因为你把1000作为十进制。根据{{​​3}}的文档,只有以零开头的数字被视为二进制,八进制,十六进制或依赖于十进制。

function formatClick() {
    screenName = document.getElementById("linkscreen").value;
    console.log(screenName);
}

答案 2 :(得分:0)

是的,按位运算符可以执行此操作,有关详细信息,请参阅https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators

  

所有位运算符的操作数都以2的补码格式转换为带符号的32位整数。