На языке JavaScript написать программу без встроенных функций с использованием условий, циклов и массивов конвертации из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную, а так же реализовать конвертацию чисел в обратном направлении.
Помогите понять, где ошибка. Неправильно переводит из 10 в 2, 8 и 16, а в обратном направлении вообще не работает.
<html>
<head>
<meta charset="utf-8" />
<title>Конвертёр чисел между системами счисления</title>
<script type="text/javascript">
function translaten() {
var number = document.getElementById('number').value;
var vhod = document.getElementById('input').value;
var vihod = document.getElementById('output').value;
var resultat = "";
if (vhod == 10 && vihod == 2 || vihod == 8 || vihod == 16) {
var a;
while (number > 0) {
a = number % vihod;
resultat = resultat + a;
var b;
b=number/vihod;
number=number-Math.ceil(b);
}
alert('Ваш результат - '+resultat);
}
if (vhod == 2 || vhod == 8 || vihod == 16 && vihod == 10) {
var resultat = 0, m = 0, nnazad, n = number.length;
nnazad = n - 1;
var arr=number.split('');
// for (var i=1; i == n; i++) {
var i = 0;
while (i < number.length) {
if (arr[i] == "A") { arr[i] = "10"; }
if (arr[i] == "B") { arr[i] = "11"; }
if (arr[i] == "C") { arr[i] = "12"; }
if (arr[i] == "D") { arr[i] = "13"; }
if (arr[i] == "E") { arr[i] = "14"; }
if (arr[i] == "F") { arr[i] = "15"; }
m = number[i] * Math.pow(input, n);
resultat = m + resultat;
n--;
i++;
alert('Ваш результат - ', resultat);
if (i > nnazad) {
alert('Ваш результат - ', resultat, '.'); break; }
}
//}
}
}
</script>
<title>Перевод из одной системы счисления в другую</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
* {
padding: 0;
}
body {
color: #80e8ff;
background: #2E69E3;
text-align: center; /* выравниваем все содержимое body по центру */
}
div {
width: 800px; /* ширина основного блока */
height: 100%; /* высота для наглядности */
background: #004A7f; /* цвет блока для наглядности */
margin: 0 auto; /* задаем отступ слева и справа auto чтобы сработало выравнивание по центру */
}
p {
font-family: courier;
font-size: 160%;
}
.input {
border: 5px solid #cccccc;
border-radius: 9px;
-webkit-border-radius: 9px;
-moz-border-radius: 3px;
-khtml-border-radius: 3px;
background: #ffffff !important;
outline: none;
height: 34px;
width: 220px;
color: #80e8ff;
font-size: 16px;
font-family: Tahoma;
text-align: right;
}
.button {
background: #2E8CE3;
padding: 7px 30px;
font-size: 16px;
font-weight: bold;
color: #FFFFFF;
text-align: center;
border: solid 1px #73C8F0;
cursor: pointer;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
background: -moz-linear-gradient(0% 100% 90deg, #2E8CE3, #73C2Fd);
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#73C2Fd), to(#2E8CE3));
box-shadow: inset 0 1px 0 0 #FFFFFF;
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
border-bottom: 1px solid rgba(0,0,0,0.25);
text-shadow: 0 -1px 1px rgba(0,0,0,0.25);
}
.button:hover {
background: #80e8ff;
background: -moz-linear-gradient(0% 100% 90deg, #2E69E3, #59C2FF);
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#59C2FF), to(#2E69E3));
}
.button:active {
background: #80e8ff;
background: -moz-linear-gradient(0% 100% 90deg, #2E69E3, #59C2fF);
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#59C2FF), to(#2E69E3));
box-shadow: inset 1px 1px 0 0 #004A7f;
-moz-box-shadow: inset 1px 1px 0 0 #004A7f;
-webkit-box-shadow: inset 1px 1px 0 0 #004A7F;
padding: 8px 29px 6px 31px;
}
.select {
border: 5px solid #cccccc;
border-radius: 9px;
-webkit-border-radius: 9px;
-moz-border-radius: 3px;
-khtml-border-radius: 3px;
background: #ffffff !important;
outline: none;
height: 34px;
width: 60px;
color: #004A7f;
font-size: 16px;
font-family: Tahoma;
}
</style>
</head>
<body>
<form>
<div>
<p><strong>Конвертёр чисел между системами счисления:</strong></p>
<p> число <input type="text" name="number" id="number" /> </p> из
<select class="element select medium" id="input" name="input">
<option value="" selected="selected"></option>
<option>2</option>
<option>8</option>
<option>10</option>
<option>16</option>
</select> системы счисления в
<select class="element select medium" id="output" name="output">
<option value="" selected="selected"></option>
<option>2</option>
<option>8</option>
<option>10</option>
<option>16</option>
</select> систему счисления
<p><input type="button" value="Перевести" onclick="translaten();" /></p>
</div>
</form>
</body>
</html>