{% else-1 %}
Работает с основаниями 2,8,10,16.
Правила записи этих чисел, думаю, все знают:
-двоичные пишем как есть, но ставим галочку под полем ввода
-восьмеричные начинаются с нуля
-шестнадцатиричные с ноль-икс

                        
var a;//начальное значение
var bas;//основание для перевода
var res;
var res_p;
var step;
var stepi;
var fin="";
var cs16=new Array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');//массив для 16-ой системы
function parseIDec() {
document.getElementById("res").value="";
fin="";
var intro="";
a=document.getElementById("a").value;//получаем значение
bas=document.getElementById("bas").value;//получаем основание
//пре-конверт
if(!document.getElementById("cs2").checked) {a=eval(a);} else {a=parseInt(a,2);
//проверяем, является ли
//введенное значение двоичным
}
//сопсна, конверт
if(bas==8) {
intro="0";} else if(bas==16) {
intro="0x";} else {
void(0);}
while(a!=0) {
res=a/bas;
res_p=Math.floor(res);
step=a-(res_p*bas);
if(bas>10&&bas<=16&&step>=10) {
num=step;
step=cs16[num];} else {void(0);}
fin=step.toString()+fin;
a=res_p;}
//закончили конвертировать
document.getElementById("res").size=(intro+fin).length;
document.getElementById("res").value=intro+fin; }
====
HTML:
<h3>Начальное значение:</h3>
<input id="a"
size="9"><br><input id="cs2"
type="checkbox">^___Двоичная?<br>
<h3 title="Основание, в которое
конвертируют. Используйте
2,8,10 и
16">Основание:</h3><input
id="bas" size="4"><br><input
type="button" value="OK"
onclick="parseIDec();" title="Click
to
convert"><br><br><h4>Результат:</h4>&nbsp;&nbsp;<input
id="res" size="7">
0 21 0
Без комментариев...