最近看到一道题目:
假设有如下代码,那么a(10)的返回结果是?
function a(a){
a^=(1<<4)-1;
return a;
}
答案是5
答案解析:首先a^=(1<<4)-1
也就是a=a^(1<<4)-1
1<<4 //表示1左移四位,即将0000 0001转化为0001 0000
0001 0000转化为十进制也就是1X2^4=16
现在计算就变成a=10^16-1
也就是a=10^15
^为异或运算符(相同为0,不同为1)
10的二进制为1010
15的二进制为1111
计算结果为0101,转化为十进制也就是5
前端面试题
最新推荐文章于 2022-03-17 14:31:35 发布