Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Системы счисления. (https://javascript.ru/forum/misc/30061-sistemy-schisleniya.html)

nanoT1m 22.07.2012 23:45

Системы счисления.
 
Здравствуйте :)
При
alert(010);

результат равен 8.

Как можно получить значение в десятичной системе, т.е. 10?

zebra 22.07.2012 23:59

parseInt('010', 10) - 2-й параметр система счисления

nanoT1m 23.07.2012 00:13

zebra,
Спасибо большое (:

nanoT1m 23.07.2012 01:02

Теперь пытаюсь преобразовать строку вида: 010+020
в строку: 10+20
Строка хранится в expr.val. Разбиваю ее на составляющие и преобразую числа при помощи parseInt. Потом склеиваю обратно в строку. (Не хочу пользоваться split методом, по-скольку собираюсь преобразовывать строки также с разными операторами отличными от +.)

var j = 0;
	for (var i=0; i<expr.val.length; i++) {
		if (expr.val(i) == '+') {
		expr.arr[j] += expr.val(i);
		j++;
		expr.arr[j] = '';
		} else {
			expr.arr[j] += expr.val(i);
		} 
	}
		for (i=0; i<=j; i++) {
			try {
				expr.arr[i] = parseInt(expr.arr[i],10);
				} 
			} 
	expr.val = expr.arr.join('');


Но что-то не выходит (:

devote 23.07.2012 05:06

var re = /(^|[^1-9])0+(?=\d)/g;

alert( "1010+2020".replace( re, "$1" ) );
alert( "010-020+030".replace( re, "$1" ) );
alert( "010*020".replace( re, "$1" ) );
alert( "010 / 020".replace( re, "$1" ) );
alert( "010 + 020".replace( re, "$1" ) );
alert( "000010 - 0000020".replace( re, "$1" ) );

alert( "0 - 0".replace( re, "$1" ) );

alert( "из числа 000010 вычесть 0000020 получим -00000010".replace( re, "$1" ) );

nanoT1m 23.07.2012 13:06

devote,
Спасибо! Правда буду очень признателен, если подскажешь где прочитать про эту кучу различных символов в переменной re
Цитата:

var re = /(^|[^1-9])0+(?=\d)/g;


nanoT1m 23.07.2012 13:07

Дзен-трансгуманист,
Точно ведь, нужны квадратиш скобки (:

Deff 23.07.2012 13:08

Цитата:

Сообщение от nanoT1m
равда буду очень признателен, если подскажешь

http://javascript.ru/basic/regular-expression

nerv_ 23.07.2012 19:49

var re = /\b0+\B/g;

alert( "1010+2020".replace( re, "" ) );
alert( "010-020+030".replace( re, "" ) );
alert( "010*020".replace( re, "" ) );
alert( "010 / 020".replace( re, "" ) );
alert( "010 + 020".replace( re, "" ) );
alert( "000010 - 0000020".replace( re, "" ) );

alert( "0 - 0".replace( re, "" ) );

alert( "из числа 000010 вычесть 0000020 получим -00000010".replace( re, "" ) );


Часовой пояс GMT +3, время: 21:20.