Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ошибка в алгоритме перевода из десятичной в 2, 8, 16 систему счисления (https://javascript.ru/forum/misc/52689-oshibka-v-algoritme-perevoda-iz-desyatichnojj-v-2-8-16-sistemu-schisleniya.html)

helloterry8 01.01.2015 17:50

Ошибка в алгоритме перевода из десятичной в 2, 8, 16 систему счисления
 
Помогите найти ошибку в алгоритме перевода из 10 в 2, 8, 16 системы счисления :-?
function translate1() {
            var chislo = document.getElementById('chislo').value; // присвоение данных переменной
            var vhod = document.getElementById('vhod').value;
            var vihod = document.getElementById('vihod').value;
            var result = "", r;
            if (vihod == 2 || vihod == 8 || vihod == 16) {
                if (vhod == 10) {
                    while (chislo > 0) {
                        r = chislo % vihod; // остаток от деления, % - оператор возвращает значение остатка при делении первого операнда на второй
                        if (r == 10) { r = "A"; }
                        if (r == 11) { r = "B"; }
                        if (r == 12) { r = "C"; }
                        if (r == 13) { r = "D"; }
                        if (r == 14) { r = "E"; }
                        if (r == 15) { r = "F"; }
                        chislo = Math.floor(chislo); // возвращает наибольшее целое, меньшее или равное аргументу
                        chislo = chislo / vihod;
                        result = r + result;
                    }
                    alert('Ваш результат - ' +result, '');
                }
            }

рони 01.01.2015 18:03

helloterry8,
result = 0
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

helloterry8 01.01.2015 18:19

Цитата:

Сообщение от рони (Сообщение 349131)
helloterry8,
result = 0
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Исправила, переводит неверно.

рони 01.01.2015 18:44

Цитата:

Сообщение от helloterry8
переводит неверно.

например?

рони 01.01.2015 18:44

helloterry8,
и 5 строка неисправлена

Rise 01.01.2015 18:45

helloterry8,
var string = '0123456789ABCDEF';
var result = '';

while (chislo) {
	result = string[chislo % vihod] + result;
	chislo = Math.floor(chislo / vihod);
}

обратно:
var string = '0123456789ABCDEF';
var result = 0;

var index = chislo.length;
while (index) {
	result += Math.pow(vhod, chislo.length - index--) * string.indexOf(chislo[index]);
}

Erolast 01.01.2015 19:21

https://translate.google.ru/#ru/en/

helloterry8 01.01.2015 19:24

Спасибо большое!


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