【问题标题】:I want to change base 10 number to base 16 [duplicate]我想将基数 10 更改为基数 16 [重复]
【发布时间】:2017-09-11 16:44:59
【问题描述】:

我正在编写一些代码(javascript)来将基数为 10 的数字更改为基数 16。如果余数在 10 到 15 之间,我知道基数 16 有字母。这就是我遇到问题的地方。我不能把余数改成字母。

到目前为止,这是我所拥有的:

var mynum = 4053,remainder=[];

while (mynum > 0) {

  total = mynum % 16;
  remainder.push(total);
  mynum = Math.floor(mynum / 16);

  switch (total > 9 || total < 16) {
    case total === 10:
      total = "A";
      break;
    case total === 11:
      total = "B";
      break;
    case total === 12:
      total = "C";
      break;
    case total === 13:
      total = "D";
      break;
    case total === 14:
      total = "E";
      break;
    case total === 15:
      total = "F";
      break;
  }

}

console.log(total,remainder)

假设“mynum”= 4053,那么我会得到 5,13,​​15。但我想得到 5,D,F。我也尝试使用“for”循环但得到了同样的结果。感觉就像我很接近但只是错过了一些东西,有人可以帮助我吗?

mynum 是实际数字,total 是余数,“remainder”是我将余数放在列表中的位置

【问题讨论】:

  • 我给你做了一个你也可以做的 sn-p。
  • hex = 4053..toString(16);

标签: javascript


【解决方案1】:
hexString = yourNumber.toString(16);

它将base 10转换为base 16

【讨论】:

    【解决方案2】:

    hexString = yourNumber.toString(16); 是一种更好的方法。但是按照你的代码中的逻辑,这就是你错了。

    这个remainder.push(total); 语句应该在switch 之后。在您的代码中,它位于 switch 之前。

    mynum = 4053;
    remainder = [];
    
    while ( mynum > 0){
    
      total = mynum % 16;
      mynum = Math.floor(mynum / 16);
    
      // remainder.push(total);
    
      switch (total > 9 || total < 16){
          case total === 10:
               total = "A";
               break;
          case total === 11:
               total = "B";
               break;
          case total === 12:
               total = "C";
               break;
          case total === 13:
               total = "D";
               break;
          case total === 14:
               total = "E";
               break;
          case total === 15:
               total = "F";
               break; 
    	}
      remainder.push(total); // here
    }
    
    console.log(remainder);

    【讨论】:

    • 谢谢。小事大有作为。
    猜你喜欢
    • 1970-01-01
    • 2015-10-19
    • 2014-09-18
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多