前端面试题总结
一、0.5的二进制是多少?
刚开始看到这个问题是懵逼的,但是仔细思考二进制的编码方式,会发现:
8,4,2,1(这是之前学的8421码,这里只包含到了1。那再往下写呢:8,4,2,1,0.5,0.25,0.125)
如0.625就可以写成 0.101B。那具体怎么计算呢?参考整数的十进制转二进制是不断除以2,取余数,从高位写到低位。那么小数则是不断乘以2,取整,从下往上写便得到小数的二进制。
1.整数转二进制

2.小数转二进制

则0.625 = 0.101B。
参考博文:
[1]: https://zhidao.baidu.com/question/176467056065296924.html
[2]: https://zhidao.baidu.com/question/560734160212652572.html
二、寻找两个数组中不重复的数
arr1 = [1, 2, 2, 3]
arr2 = [1, 3, 4, 5]
这两个数组不重复的数为:[2, 4, 5]
function findDifference(arr1, arr2) {
// 1.用set1,set2分别保存arr1,arr2(相当于去重)
// 2.遍历set1,看set2中是否有,若有则删除set2中对应数
// 2.1若没有则添加
// 3.返回set2
const set1 = new Set(arr1);
const set2 = new Set(arr2);
for (let num of set1) {
if (set2.has(num)) {
set2.delete(num);
} else {
set2.add(num);
}
}
return Array.from(set2.values());
}
499

被折叠的 条评论
为什么被折叠?



