|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Помогите по JavaScript
Вот код перевода чисел из одной системы счисления в другую. Помогите переделать его, чтбы он переводил только из 16тиричной в 2ичную:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>1-ое задание</title> </head> <body> <script type="text/javascript" language="JavaScript"> //Инициализация массива аргументов function initArray() { this.length = initArray.arguments.length; for (var i = 0; i < this.length; i++) this[i] = initArray.arguments[i]; } function from10toradix(value,radix){ var retval = ''; var ConvArray = new initArray(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F'); var intnum; var tmpnum; var i = 0; intnum = parseInt(value,10); if (isNaN(intnum)){ retval = 'NaN'; }else{ while (intnum > 0.9){ i++; tmpnum = intnum; // связь возвращаемой строки с новым значением: retval = ConvArray[tmpnum % radix] + retval; intnum = Math.floor(tmpnum / radix); if (i > 100){ // стоп retval = 'NaN'; break; } } } return retval; } //Очищение function resetform(cform) { cform.result.value=""; cform.expr.value=""; } /* Пока не будет выбрана какая-то радиокнопка процедура не будет выполнена.*/ function compute(cform) { var tmpvar; if (cform.cotype[0].checked){ // d2h Перевод из десятичной в шестнадцатиричную cform.result.value = " " + from10toradix(cform.expr.value,16); }else if (cform.cotype[5].checked){ // h2d Перевод из шестнадцатиричной в десятичную cform.result.value = " " + parseInt(cform.expr.value,16); }else if (cform.cotype[1].checked){ // d2b Перевод из десятичной в двоичную cform.result.value = " " + from10toradix(cform.expr.value,2); }else if (cform.cotype[2].checked){ // b2d Перевод из двоичной в десятиричную cform.result.value = " " + parseInt(cform.expr.value,2); }else if (cform.cotype[3].checked){ // b2h Перевод из двоичной в шестнадцатиричную tmpvar = parseInt(cform.expr.value,2); if (isNaN(tmpvar)){ cform.result.value = ''; }else{ cform.result.value = " " + from10toradix(tmpvar,16); } }else if (cform.cotype[4].checked){ // h2b Перевод из шестнадцатиричной в двоичную. //Именно эту процедуру мне и надо оставить. Только из 16ой в 2ую. Остальные мне не надо по условию. tmpvar = parseInt(cform.expr.value,16); if (isNaN(tmpvar)){ cform.result.value = ''; }else{ cform.result.value = " " + from10toradix(tmpvar,2); } }else{ alert("ERROR: No such conversion type"); } } </script> <form action=""> Vvedite chislo: <input type="text" name="expr" size="100"> <br> /*Это сами радио кнопки. Их нужно все убрать. Нужно как то сделать, чтобы не надо было ничего выбирать, а по нажатию кнопки сразу происходила процедура перевода чисел.*/ <table> <tr> <td><input type="radio" name="cotype" value="d2h"> dec to hex (10 в 16)</td> </tr> <tr> <td><input type="radio" name="cotype" value="d2b" checked="checked"> dec to bin (10 в 2)</td> </tr> <tr> <td><input type="radio" name="cotype" value="b2d"> bin to dec (2 в 10)</td> </tr> <tr> <td><input type="radio" name="cotype" value="b2h"> bin to hex (2 в 16)</td> </tr> <tr> <td><input type="radio" name="cotype" value="h2b"> hex to bin (16 в 2)</td> </tr> <tr> <td><input type="radio" name="cotype" value="h2d"> hex to dec (16 в 10)</td> </tr> </table> <br> Otvet: <input type="text" name="result" size="100"> <input type="button" value="Perevesti" onclick="compute(this.form);"> </form> </body> </html> |
#2
|
||||
|
||||
Так.
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>1-ое задание</title> </head> <body> <script type="text/javascript" language="JavaScript"> //Инициализация массива аргументов function initArray() { this.length = initArray.arguments.length; for (var i = 0; i < this.length; i++) this[i] = initArray.arguments[i]; } function from10toradix(value,radix){ var retval = ''; var ConvArray = new initArray(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F'); var intnum; var tmpnum; var i = 0; intnum = parseInt(value,10); if (isNaN(intnum)){ retval = 'NaN'; }else{ while (intnum > 0.9){ i++; tmpnum = intnum; // связь возвращаемой строки с новым значением: retval = ConvArray[tmpnum % radix] + retval; intnum = Math.floor(tmpnum / radix); if (i > 100){ // стоп retval = 'NaN'; break; } } } return retval; } //Очищение function resetform(cform) { cform.result.value=""; cform.expr.value=""; } /* Пока не будет выбрана какая-то радиокнопка процедура не будет выполнена.*/ function compute(cform) { var tmpvar; if (cform.cotype[0].checked){ // d2h Перевод из десятичной в шестнадцатиричную cform.result.value = " " + from10toradix(cform.expr.value,16); }else if (cform.cotype[5].checked){ // h2d Перевод из шестнадцатиричной в десятичную cform.result.value = " " + parseInt(cform.expr.value,16); }else if (cform.cotype[1].checked){ // d2b Перевод из десятичной в двоичную cform.result.value = " " + from10toradix(cform.expr.value,2); }else if (cform.cotype[2].checked){ // b2d Перевод из двоичной в десятиричную cform.result.value = " " + parseInt(cform.expr.value,2); }else if (cform.cotype[3].checked){ // b2h Перевод из двоичной в шестнадцатиричную tmpvar = parseInt(cform.expr.value,2); if (isNaN(tmpvar)){ cform.result.value = ''; }else{ cform.result.value = " " + from10toradix(tmpvar,16); } }else if (cform.cotype[4].checked){ // h2b Перевод из шестнадцатиричной в двоичную. //Именно эту процедуру мне и надо оставить. Только из 16ой в 2ую. Остальные мне не надо по условию. tmpvar = parseInt(cform.expr.value,16); if (isNaN(tmpvar)){ cform.result.value = ''; }else{ cform.result.value = " " + from10toradix(tmpvar,2); } }else{ alert("ERROR: No such conversion type"); } } </script> <form action=""> Vvedite chislo: <input type="text" name="expr" size="100"> <br> <table style="display: none;"> <tr> <td><input type="radio" name="cotype" value="d2h"> dec to hex (10 в 16)</td> </tr> <tr> <td><input type="radio" name="cotype" value="d2b" > dec to bin (10 в 2)</td> </tr> <tr> <td><input type="radio" name="cotype" value="b2d"> bin to dec (2 в 10)</td> </tr> <tr> <td><input type="radio" name="cotype" value="b2h"> bin to hex (2 в 16)</td> </tr> <tr> <td><input type="radio" name="cotype" value="h2b" checked> hex to bin (16 в 2)</td> </tr> <tr> <td><input type="radio" name="cotype" value="h2d"> hex to dec (16 в 10)</td> </tr> </table> <br> Otvet: <input type="text" name="result" size="100"> <input type="button" value="Perevesti" onclick="compute(this.form);"> </form> </body> </html> Кнопка "+" - весы в правом верхнем углу сообщения... |