在javascript中如何将十六进制和八进制整数转换为十进制值:
例如:
var num=parseInt("0x10");
document.write(num);
它显示为输出值16如何??
答案 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
。