2024/8/4
假如有如下代码,那么a(10)的返回结果是()
function a(a){
a^=(1<<4)-1;
return a;
}
- 位移操作
表达式 (1 << 4) 代表将数字 1 左移 4 位。二进制左移操作会将数字的二进制表示向左移动指定的位数,在右侧补 0
1 (二进制表示为 0001)
左移 4 位后得到 10000
因此(1<<4)-1为15
(1<<4)-1
- 按位异或操作
按位异或操作 ^=。这个操作将 a 和 15 进行异或运算。异或运算的规则是:如果两个位相同,则结果为 0;如果不同,则结果为 1。
1010 (10)
1111 (15)
----
0101 (5)
故输出为5