美文网首页
HJ5 进制转换 2022-03-12 周六

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

作者: 勇往直前888 | 来源:发表于2022-03-14 16:18 被阅读0次

    题目

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

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

    • 输出描述:
      输出该数值的十进制字符串。不同组的测试用例用\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)
    
    

    相关文章

      网友评论

          本文标题:HJ5 进制转换 2022-03-12 周六

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