JavaScript 位运算符

怎么使用

正数
3
00000000 00000000 00000011 二进制编码

~3, 表示
取反
11111111 11111111 11111100 3二进制编码取反
第一位是1 为负数,减1取反,得到对应的10进制
11111111 11111111 11111011 减 1
00000000 00000000 00000100 
结果是-4

-3
先是3的二进制编码,然后取反,然后加1(补码)得到-3的二进制编码
00000000 00000000 00000011     3二进制编码
11111111 11111111 11111100     取反
111111111 11111111 11111101      +1 是补码
00000000 00000000 00000010   ~
第一位是0 为正数,+2
正数
5
00000000 00000000 00000101 二进制编码

~5, 表示
取反
11111111 11111111 11111010
即需要将这个数减去1,再取一次反,然后加上负号,才能得到这个负数对应的10进制值。
减1
1001

00000000 00000000 0000110
6
-6
先是6的二进制编码,然后取反,然后加1(补码)得到-6的二进制编码
00000000 00000000 00000110     6二进制编码
11111111 11111111 11111001     取反
111111111 11111111 11111010      +1 是补码
00000000 00000000 00000101 ~-6
第一位是0 为正数,5

对任一数值 x 进行按位非操作的结果为 -(x + 1)。例如,~5 结果为 -6。

  • 负数转化为二进制,是此负数的二进制取反加1,
  • 二进制转化为10进制,如果是负数,减1取反,得到10进制,在加上负号
posted @ 2020-12-22 15:54  Running00  阅读(79)  评论(0编辑  收藏  举报