20.11.2008, 08:24
|
|
Начинающий
|
|
Регистрация: 05.08.2008
Сообщения: 115
Репутация: 12
|
|
Помогите по 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>
|