美文网首页
Day 32/100 (华为机试)16进制转化为10进制

Day 32/100 (华为机试)16进制转化为10进制

作者: 赵国星 | 来源:发表于2020-09-01 22:09 被阅读0次

    写在前面的话

    吭哧吭哧写半天,发现在JavaScript中有现成实现过的方法

    哎,笨啊...

    (一)题目

    题目描述

    写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )

    输入描述:

    输入一个十六进制的数值字符串。

    输出描述:

    输出该数值的十进制字符串。

    示例1

    输入

    0xA

    输出

    10

    (二)解题思路

    1、截取输入的字符串,去掉0x

    str.slice(2)

    2、遍历字符串,利用对象属性找到每个字符对应的值

    每一个进制位,进行16指数幂的计算,并求和;

    (要在对象中包含0,否则会报错)

    let obj={'0':0,'1':1,'2':2,'3':3,'4':4 ,'5':5,'6':6,'7':7,'8':8,'9':9,'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}

    let num=0;

    for(let i=0;i<s.length;i++){

            let v=obj[s[i]];

            num+= v*Math.pow(16,s.length-i-1)

        }

    全部代码,如图

    BT的是,需要用while,才可以循环接受参数数据

    提交结果如下

    (三)他山之石

    写完后,查看了其他大神写的代码,有效代码就一句

    parseInt(line,16)

    NND...  有现成的方法,结果吭哧吭哧实现了一遍,忧桑~~

    参考链接

    https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6?tpId=37&&tqId=21228&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking

    以上

    相关文章

      网友评论

          本文标题:Day 32/100 (华为机试)16进制转化为10进制

          本文链接:https://www.haomeiwen.com/subject/gmebsktx.html