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

Why is non binary number evaluated as binary

本文关键字:二进制数 评估 为什么      更新时间:2023-09-26

为什么会出现以下

0xf & 1000

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

0xf & 0b1000

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

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

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

因此,对于bitwise运算符,在这两种情况下都有相同的结果。

因为您将1000作为小数。根据Numbers的文档,只有以零开头的数字才会被视为二进制、八进制、十六进制或取决于十进制。

   f hex = 0000001111 bin
1000 dec = 1111101000 bin
       &   0000001000 bin = 8 dec        

是的,按位运算符可以做到这一点,请参阅https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators详细信息。

所有按位运算符的操作数都转换为二进制补码格式的有符号32位整数。