十六进制转十进制

题目:

解析:

  • 十六进制转十进制(百度百科

  • 理解了十六进制转十进制以后,大致的思路就是,你得把除0-9的数字以外的A 、B 、C 、D 、E 、F 这六个对应的数字定义为一个对象中,以便后续使用(具体看代码)

  • 最后需要注意的就是,计算十六进制到十进制时,第一位是在末尾。好了 可以写代码了

代码产出:

方法一: 就是直接倒着读取字符串

var fn = (line) => {
    // A B C D E F 各指的数字
    var obj = {
        A: 10,
        B: 11,
        C: 12,
        D: 13,
        E: 14,
        F: 15
    }
    var str = line.substr(2)
    var sum = 0
    for (let i = str.length - 1, j = 0;i >= 0;i--, j++) {
        if (!isNaN(str[i])) {
            sum += Number(str[i]) * Math.pow(16, j)
        } else {
            sum += obj[str[i].toLocaleUpperCase()] * Math.pow(16, j)
        }
    }
    console.log(sum)
}

方法二: 就是先将字符串翻转

var str = line.substr(2).split(’’).reverse().join(’’)

var fn = (line) => {
    // A B C D E F 各指的数字
    var obj = {
        A: 10,
        B: 11,
        C: 12,
        D: 13,
        E: 14,
        F: 15
    }
    var str = line.substr(2).split('').reverse().join('')
    var sum = 0
    for (let i = 0;i < str.length;i++) {
        if (!isNaN(str[i])) {
            sum += Number(str[i]) * Math.pow(16, i)
        } else {
            sum += obj[str[i].toLocaleUpperCase()] * Math.pow(16, i)
        }
    }
    console.log(sum)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不cong明的亚子

鼓励和支持,是我每滴汗水的见证

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值