十六进制转换为十进制int

时间:2012-02-16 10:25:00

标签: javascript

在javascript中如何将十六进制和八进制整数转换为十进制值:

例如:

var num=parseInt("0x10");
 document.write(num);

它显示为输出值16如何??

3 个答案:

答案 0 :(得分:1)

var hexnum = parseInt("0x10", "16"); //for hexadecimal
var octnum = parseInt("10", "8");  //for octal

答案 1 :(得分:1)

  

十六进制和八进制整数转换为十进制值

没有

不,不,不。

当您执行parseInt传递基本参数时!)时,字符串输入中表示的数字将转换为二进制以进行内部表示,并且默认情况下,输出一个数字是十进制的。

存储的数字根本不是“十进制”或“八进制”。

如果您想要十六进制表示,请按原样打印:

var num=parseInt("0x10", 16);
document.write(number.toString(16));

答案 2 :(得分:1)

Javascript的parseInt采用可选的第二个参数radix,指定要转换为的基数。来自MDN parseInt

  

如果radix未定义或为0,则JavaScript假定以下内容:

     

如果输入字符串以“0x”或“0X”开头,则基数为16(十六进制)。

     

如果输入字符串以“0”开头,则基数为8(八进制)。

     

此功能是非标准的,有些实现故意不支持它(而是使用基数10)。因此,在使用parseInt时始终指定基数。

     

如果输入字符串以任何其他值开头,则基数为10(十进制)。

在您的情况下,指定radix 10

var num = parseInt("0x10", 10)

产生num == 0,而radix 16

var num = parseInt("0x10", 16)

产生num == 16(因为0x10,当被解释为十六进制数时,十进制数等于16(基数为10)。

最好指定您希望解释输入的radix