注意,这不是完善的代码,只是用程序记录下手动转换计算时的思路 //10进制转2进制 //除以2取余,逆序排列 function Convert10to2(x){ var ret = [], temp = x; do { ret.push( temp % 2 ); temp = Math.floor(temp / 2); } while ( temp > 1 ) ret.push(temp); return ret.reverse().join(""); } //2进制转10进制 //按权展开求和 function Convert2to10(x){ var ret = x.toString().split("").reverse(), temp = 0,len = ret.length; for(var i=0; i<len; i++){ temp += ret[i] * Math.pow(2,i) ; } return temp; } //8进制转2进制 //每位数转成3位2进制,不足补0 function Convert8to2(x){ var ret = x.toString().split(""),temp = "",t,len = ret.length; for(var i=0; i<len; i++){ t = Convert10to2( parseInt(ret[i]) ); if( t.length < 3 ){ t = "0" + t; if(t.length == 2){ t = "0" + t; } } temp = temp + "" + t; } return temp; }