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

写在前面的话

吭哧吭哧写半天,发现在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


以上

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容