在原版的基础上增加了小数部分的转换功能
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>进制转换_可以实现各类进制间的相互转换</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

</HEAD>
<BODY>

<TABLE cellSpacing=0 cellPadding=0 width=860 align=center border=0>
<TBODY>
<TR align=middle bgColor=#ffffff>
<TD> </TD></TR></TBODY></TABLE>
<TABLE style="BORDER-COLLAPSE: collapse" cellPadding=0 width=776 align=center
border=0>
<TBODY>
<TR>
<TD vAlign=top align=middle height=31>
<font style="color:#FF0000; font-size:14px; font-weight:bolder">进制转换</font></TD></TR>
<TR>
<TD vAlign=top align=middle height=25>
<P><FONT color=#333333>可以实现各类进制间的相互转换</FONT> </P></TD></TR>
<TR>
<TD vAlign=top>
<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#d9d9d9 cellSpacing=0
cellPadding=8 width=760 align=center bgColor=#fcfcfc border=1>
<TBODY>
<TR>
<TD align=middle>
<TABLE cellSpacing=0 cellPadding=2 border=0>
<TBODY>
<TR>
<TD><B>10进制转成16进制:</B></TD>
<TD align=right><INPUT class=bt_mouseout onMouseOver="this.className='bt_mouseover'" style="PADDING-TOP: 0px" onclick=t1_16.value=v10toX(16,t1_10.value) onMouseOut="this.className='bt_mouseout'" type=button value=" 转 换 " name=button>
</TD></TR>
<TR>
<TD align=right colSpan=2>十 进 制: <INPUT name=t1_10> → 十六进制:
<INPUT readOnly name=t1_16> </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=middle>
<TABLE cellSpacing=0 cellPadding=2 border=0>
<TBODY>
<TR>
<TD><B>16进制转成10进制:</B></TD>
<TD align=right><INPUT class=bt_mouseout onMouseOver="this.className='bt_mouseover'" style="PADDING-TOP: 0px" onclick=t2_10.value=vXto10(16,t2_16.value) onMouseOut="this.className='bt_mouseout'" type=button value=" 转 换 " name=button2>
</TD></TR>
<TR>
<TD align=right colSpan=2>十六进制: <INPUT name=t2_16> → 十 进 制:
<INPUT readOnly name=t2_10> </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=middle>
<TABLE cellSpacing=0 cellPadding=2 border=0>
<TBODY>
<TR>
<TD><B>10进制转成2进制:</B></TD>
<TD align=right><INPUT class=bt_mouseout onMouseOver="this.className='bt_mouseover'" style="PADDING-TOP: 0px" onclick=t3_2.value=v10toX(2,t3_10.value) onMouseOut="this.className='bt_mouseout'" type=button value=" 转 换 " name=button2>
</TD></TR>
<TR>
<TD align=right colSpan=2>十 进 制: <INPUT name=t3_10> → 二 进 制:
<INPUT readOnly name=t3_2> </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=middle>
<TABLE cellSpacing=0 cellPadding=2 border=0>
<TBODY>
<TR>
<TD><B>2进制转成10进制:</B></TD>
<TD align=right><INPUT class=bt_mouseout onMouseOver="this.className='bt_mouseover'" style="PADDING-TOP: 0px" onclick=t4_10.value=vXto10(2,t4_2.value) onMouseOut="this.className='bt_mouseout'" type=button value=" 转 换 " name=button2>
</TD></TR>
<TR>
<TD align=right colSpan=2>二 进 制: <INPUT name=t4_2> → 十 进 制:
<INPUT readOnly name=t4_10> </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=middle>
<TABLE cellSpacing=0 cellPadding=2 border=0>
<TBODY>
<TR>
<TD><B>10进制转成64进制:</B></TD>
<TD align=right><INPUT class=bt_mouseout onMouseOver="this.className='bt_mouseover'" style="PADDING-TOP: 0px" onclick=t5_64.value=v10toX(64,t5_10.value) onMouseOut="this.className='bt_mouseout'" type=button value=" 转 换 " name=button2>
</TD></TR>
<TR>
<TD align=right colSpan=2>十 进 制: <INPUT name=t5_10> → 六四进制:
<INPUT readOnly name=t5_64> </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=middle>
<TABLE cellSpacing=0 cellPadding=2 border=0>
<TBODY>
<TR>
<TD><B>64进制转成10进制:</B></TD>
<TD align=right><INPUT class=bt_mouseout onMouseOver="this.className='bt_mouseover'" style="PADDING-TOP: 0px" onclick=t6_10.value=vXto10(64,t6_64.value) onMouseOut="this.className='bt_mouseout'" type=button value=" 转 换 " name=button2>
</TD></TR>
<TR>
<TD align=right colSpan=2>六四进制: <INPUT name=t6_64> → 十 进 制:
<INPUT readOnly name=t6_10> </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=middle>
<TABLE cellSpacing=0 cellPadding=2 width='border="0"'>
<TBODY>
<TR>
<TD><B>X进制转成Y进制:</B></TD>
<TD align=right><INPUT class=bt_mouseout onMouseOver="this.className='bt_mouseover'" style="PADDING-TOP: 0px" onclick=t7_y.value=vXtoY(s7nx.value,t7_x.value,s7ny.value) onMouseOut="this.className='bt_mouseout'" type=button value=" 转 换 " name=button2>
</TD></TR>
<TR>
<TD align=right colSpan=2><SELECT name=s7nx>
<SCRIPT>
t=""
for(x=2;x<65;x++)t+="<option value="+x+">"+x+"</option>"
document.write(t)
</SCRIPT>
</SELECT> 进制 <INPUT id=t7_x name=t7_x> → <SELECT name=s7ny>
<SCRIPT>
t=""
for(x=2;x<65;x++)t+="<option value="+x+">"+x+"</option>"
document.write(t)
</SCRIPT>
</SELECT> 进制 <INPUT id=t7_y readOnly name=t7_y>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
</BODY></HTML>

<SCRIPT language="javascript">
ss="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_@"
s7nx.value=10

function v10toX(n,m)
{
m=String(m).replace(/ /gi,"")
if(m=="")return ""
if(parseInt(m)!=m)
{

if(eval("m.replace(/./gi,'')")!="")
{
alert("请输入10进制数!");return ""
}
}

var t=""

var tempm
tempm = String(m)
var i = tempm.indexOf(".")
//var t=0,c=1
if (i != -1)
{
//alert(i)
var mz,mx
mz = tempm.substring(0,i)
//alert(mz)
var a=ss.substr(0,n)
while(mz!=0)
{
var b=mz%n
t=a.charAt(b)+t
mz=(mz-b)/n
}

//t+="."
mx = tempm.substring(i+1,tempm.length)
//alert(mx)
mx=mx.replace(".","")
var mxx = "0."+mx
//alert(mxx)
var t0=""
var jj = 0
while(mxx!=0 && jj<10)
{
var b = mxx * n
var z = parseInt(b)
var bindexof = String(b).indexOf(".")
var x = ""
if (bindexof != -1)
{
x = "0."+String(b).substring(bindexof+1, String(b).length)
}
else
{
x = "0"
}
t0=t0+a.charAt(z)
mxx=x
//alert(".b:"+b+".z:"+z+".x:"+x+".mxx:"+mxx)
jj++
}
//alert(jj)
//alert(mx.length)
/*c=1
var t0 = 0
for(var x=0;x<mx.length;x++)
{
c*=(1.0/n)
t0+=c*(a.indexOf(mx.charAt(x)))
}
*/
t+="."+t0
}
else
{
var a=ss.substr(0,n)
while(m!=0)
{
var b=m%n
t=a.charAt(b)+t
m=(m-b)/n
}
}

return t
}

function vXto10(n,m)
{
m=String(m).replace(/ /gi,"")
if(m=="")return ""
var a=ss.substr(0,n+1)
if(eval("m.replace(/["+a+"]/gi,'')")!="")
{
if(eval("m.replace(/./gi,'')")!="")
{
alert("请输入"+n+"进制数!");return ""
}
}

var tempm
tempm = String(m)
var i = tempm.indexOf(".")
var t=0,c=1
if (i != -1)
{
//alert(tempm.indexOf("."))

var mz,mx
mz = tempm.substring(0,i)
//alert(mz)
for(var x=mz.length-1;x>-1;x--)
{
t+=c*(a.indexOf(mz.charAt(x)))
c*=n
}

//t+="."
mx = tempm.substring(i+1,tempm.length)
mx=mx.replace(".","")
//alert(mx)
//alert(mx.length)
c=1
var t0 = 0
for(var x=0;x<mx.length;x++)
{
c*=(1.0/n)
t0+=c*(a.indexOf(mx.charAt(x)))
}
t+=t0
}
else
{
for(var x=m.length-1;x>-1;x--)
{
t+=c*(a.indexOf(m.charAt(x)))
c*=n
}
}
return t
}


function vXtoY(n,m,y)
{
a=vXto10(n*1,m)
if(a=="")return ""
a=v10toX(y,a)
return a
}
</SCRIPT>















































































































































































































































































