手机站
网通分站
电信主站
密 码:
用户名:
热门关键字:  虚拟主机  cn域名  域名注册  非法  seo
当前位置 : 主页>程序设计>Java技术>列表

进制转换(二)(Javascript版)

来源:互联网 作者:west263.com 时间:2008-02-23 点击:
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

下面是偶在JavaScript中实现的各种进制间的转换。

<script language="Javascript">
//dh20156
//2006-9-10
//返回指定数量的重复字符组成的字符串;
function dhString(n,c){
var tempStr = "";
for(var i=0;i<n;i ){
tempStr = c.toString();
}
return tempStr;
}

document.write("二进制、十进制转换<hr>");
//二进制 --> 十进制
function tw2teChange(n){
var strN = n.toString();
var ln = strN.length;
var tempInt = 0;
for(var i=0;i<ln;i ){
var t = strN.substr(i,1);
var e = ln-i-1;
if(!isNaN(t)){
tempInt = t*(Math.pow(2,e));
}else{
tempInt = "?";
}
}
return tempInt;
}
function tw2te(n){
var strN = n.toString();
var tempInt = 0;
var ln = strN.length;
var ld = strN.indexOf(".")
if(ld<0){
tempInt = tw2teChange(strN);
}else{
var ti = strN.substring(0,ld);
var tm = strN.substring(ld 1,ln);
var tempInt1 = tw2teChange(ti);
var tempInt2 = tw2teChange(tm);
tempInt = tempInt1 "." tempInt2;
}
return tempInt;
}
//------ 结束 -----
var a = "10110111.101100";
document.write(a " --2T10--> " tw2te(a) "<br>");


//十进制 --> 二进制
function te2twChange(n){
if(!isNaN(n) && n>0){
if(n%2==0){
return te2twChange(n/2) "0";
}else{
if(n>2){
return te2twChange(parseInt(n/2)) (n%2);
}else{
return te2twChange(0) n;
}
}
}else{
return "";
}
}

function te2tw(n){
if(!isNaN(n)){
var strN = n.toString();
var tempInt = 0;
var ln = strN.length;
var ld = strN.indexOf(".")
if(ld<0){
tempInt = te2twChange(n);
}else{
var ti = strN.substring(0,ld);
var tm = strN.substring(ld 1,ln);
var tempInt1 = te2twChange(ti);
var tempInt2 = te2twChange(tm);
tempInt = tempInt1 "." tempInt2;
}
return tempInt;
}else{
return "false";
}
}
//------ 结束 -----
var b = 101;
document.write(b " --10T2--> " te2tw(b) "<br>");
document.write("<br>二进制、八进制转换<hr>");

//二进制 --> 八进制
function tw2eiChange(n,tp){
var strN = n.toString();
var ln = strN.length;
var tempInt = "";
if(tp=="intType"){
for(var i=ln;i>0;i -= 3){
var tempN = strN.substring(i-3,i);
tempInt = tw2te(tempN) tempInt;
}
}else{
for(var i=0;i<ln;i = 3){
var tempN = strN.substring(i,i 3);
if(tempN.length<3){
tempN = tempN dhString((3-tempN.length),"0");
}
tempInt = tw2te(tempN);
}
}
return tempInt;
}

function tw2ei(n){
var strN = n.toString();
var tempInt = 0;
var ln = strN.length;
var ld = strN.indexOf(".")
if(ld<0){
tempInt = tw2eiChange(strN,"intType");
}else{
var ti = strN.substring(0,ld);
var tm = strN.substring(ld 1,ln);
var tempInt1 = tw2eiChange(ti,"intType");
var tempInt2 = tw2eiChange(tm,"modType");
tempInt = tempInt1 "." tempInt2;
}
return tempInt;
}
//------ 结束 -----
var c = "10110111.1011";
document.write(c " --2T8--> " tw2ei(c) "<br>");

//八进制 --> 二进制
function ei2twChange(n){
var strN = n.toString();
var ln = strN.length;
var tempInt = "";
for(var i=0;i<ln;i ){
var t = strN.substr(i,1);
var e = ln-i-1;
if(!isNaN(t)){
tempInt = te2tw(t);
}else{
tempInt = "?";
}
}
return tempInt;
}

function ei2tw(n){
if(!isNaN(n)){
var strN = n.toString();
var tempInt = 0;
var ln = strN.length;
var ld = strN.indexOf(".")
if(ld<0){
tempInt = ei2twChange(n);
}else{
var ti = strN.substring(0,ld);
var tm = strN.substring(ld 1,ln);
var tempInt1 = ei2twChange(ti);
var tempInt2 = ei2twChange(tm);
tempInt = tempInt1 "." tempInt2;
}
return tempInt;
}else{
return "false";
}
}
//------ 结束 -----
var d = 267.54;
document.write(d " --8T2--> " ei2tw(d) "<br>");
document.write("<br>二进制、十六进制转换<hr>");

//二进制 <-匹配表-> 十六进制
function twMatchst(v,rv){
if(rv==16){
switch(v.toString()){
case "0000":return "0";break;
case "0001":return "1";break;

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

共4页: 上一页 1 [2] [3] [4] 下一页
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名
注册