前端面试题总结(五)

前端面试题总结

一、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());
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>