我想将基数 10 更改为基数 16 [重复]

Posted

技术标签:

【中文标题】我想将基数 10 更改为基数 16 [重复]【英文标题】:I want to change base 10 number to base 16 [duplicate] 【发布时间】: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); 【参考方案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);

【讨论】:

谢谢。小事大有作为。

以上是关于我想将基数 10 更改为基数 16 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

我想将 iPad 资源更改为 iPhone [重复]

从十进制基数转换为十六进制基数c ++

当我将基数为 10 的数字转换为基数为 2 的数字时,为啥位会重复?

我想将这种格式“$ 1,000,000”更改为“1000000”[重复]

基数排序基数 16(十六进制)

gdb 反汇编:以 16 为基数显示函数偏移量