写在前面的话
吭哧吭哧写半天,发现在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
以上