Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.07.2012, 23:45
Интересующийся
Отправить личное сообщение для nanoT1m Посмотреть профиль Найти все сообщения от nanoT1m
 
Регистрация: 21.07.2012
Сообщений: 25

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

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

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

Последний раз редактировалось nanoT1m, 22.07.2012 в 23:54.
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2012, 23:59
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

parseInt('010', 10) - 2-й параметр система счисления
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2012, 00:13
Интересующийся
Отправить личное сообщение для nanoT1m Посмотреть профиль Найти все сообщения от nanoT1m
 
Регистрация: 21.07.2012
Сообщений: 25

zebra,
Спасибо большое (:
Ответить с цитированием
  #4 (permalink)  
Старый 23.07.2012, 01:02
Интересующийся
Отправить личное сообщение для nanoT1m Посмотреть профиль Найти все сообщения от nanoT1m
 
Регистрация: 21.07.2012
Сообщений: 25

Теперь пытаюсь преобразовать строку вида: 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('');


Но что-то не выходит (:
Ответить с цитированием
  #5 (permalink)  
Старый 23.07.2012, 05:06
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

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" ) );
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 23.07.2012 в 11:27.
Ответить с цитированием
  #6 (permalink)  
Старый 23.07.2012, 13:06
Интересующийся
Отправить личное сообщение для nanoT1m Посмотреть профиль Найти все сообщения от nanoT1m
 
Регистрация: 21.07.2012
Сообщений: 25

devote,
Спасибо! Правда буду очень признателен, если подскажешь где прочитать про эту кучу различных символов в переменной re
Цитата:
var re = /(^|[^1-9])0+(?=\d)/g;
Ответить с цитированием
  #7 (permalink)  
Старый 23.07.2012, 13:07
Интересующийся
Отправить личное сообщение для nanoT1m Посмотреть профиль Найти все сообщения от nanoT1m
 
Регистрация: 21.07.2012
Сообщений: 25

Дзен-трансгуманист,
Точно ведь, нужны квадратиш скобки (:
Ответить с цитированием
  #8 (permalink)  
Старый 23.07.2012, 13:08
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от nanoT1m
равда буду очень признателен, если подскажешь
http://javascript.ru/basic/regular-expression
Ответить с цитированием
  #9 (permalink)  
Старый 23.07.2012, 19:49
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

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, "" ) );
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод букв в двоичную систему счисления andrewvas Общие вопросы Javascript 19 08.03.2018 11:43
Системы счисления Agness Общие вопросы Javascript 9 08.04.2012 00:11
Пример идеального ядра большой системы vissarion Библиотеки/Тулкиты/Фреймворки 0 27.12.2010 14:45
Модель солнечной системы radio123 Общие вопросы Javascript 9 23.11.2010 17:30
Перевод числа в разные системы счисления. lolka84 Opera, Safari и др. 4 24.08.2010 15:43