Преобразование восьмеричных и шестнадцатеричных чисел в основание 10

Я пытаюсь понять восьмеричные и шестнадцатеричные вычисления javascript. Я знаю, что могу использовать parseInt (string, radix) , чтобы получить целочисленное значение.

Например, когда я пытаюсь это сделать, почему значения разные?

var octal = parseInt('026', 8); 
var octal1 = parseInt('030', 8); 
alert(octal); //22
alert(octal1); //24    

var hex = parseInt('0xf5', 16); 
var hex1 = parseInt('0xf8', 16); 
alert(hex); //245
alert(hex1); //248

Но если я попытаюсь сохранить его в массиве, почему ответы будут разными и неправильными?

var x = new Array(026, 5, 0xf5, "abc");
var y = new Array(030, 3, 0xf8, "def");

alert('026 is ' + parseInt(x[0],8)); //18
alert('0xf5 is ' + parseInt(x[2],16)); //581
alert('030 is ' + parseInt(y[0],8)); //20
alert('0xf8 is ' + parseInt(y[2],16)); //584
6
задан Phrogz 23 February 2012 в 19:58
поделиться