HJ5 进制转换 2022-03-12 周六

题目

  • 描述
    写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

  • 输入描述:
    输入一个十六进制的数值字符串。

  • 输出描述:
    输出该数值的十进制字符串。不同组的测试用例用\n隔开。

  • 示例1
    输入:0xAA
    输出:170

  • 题解链接

思路

  • 方案一,直接用字符串的parseInt就好了,第2个参数给16;parseInt(str,16)

  • 方案二,按照进制转换,从右向左,两位两位算

// 原始的字符串
const num_16 = readline()

// 10以上的字符对照表格
const numMap = {
  A: 10,
  B: 11,
  C: 12,
  D: 13,
  E: 14,
  F: 15
}

let res = 0
let num = num_16.slice(2) // 去掉开头的0x

if(num.length === 1) {
  res = numMap[num] || num
} else {
    // 字符串转数组,倒序,然后累加
    num.split('').reverse().forEach((item, index) => {
      const cur = numMap[item] || parseInt(item, 10)
      res += cur * Math.pow(16, index)
    })
}
console.log(res)

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

相关阅读更多精彩内容

友情链接更多精彩内容