js实现进制转换
2017-08-17 23:47
218 查看
/* 进制转换问题。 主要知识点: 十进制转为其他进制时,将数组当作栈来使用; 二进制转为其他进制时,可先转为十进制,再有十进制转为目标进制. */ /* 问题1:十进制转为其他进制(二进制~十进制、十六进制) */ /* Unicode编码中,第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字; 65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。 */ function dec2(num,base){ var arr=[]; var res=""; var mod; do{ mod=num%base; mod=mod>9?String.fromCharCode(mod+55):mod; // 将大于9的余数转为对应的字符 arr.push(mod); num=Math.floor(num/base); // 此处向下取整不可少 }while(num>0); while(arr.length>0){ res+=arr.pop(); } return res; } console.log(dec2(32,2)); // 100000 console.log(dec2(125,8)); //175 console.log(dec2(32,16)); // 20 console.log(dec2(32,10)); // 32 //console.log(dec2(32,1)); // 没有1进制 console.log(dec2(173,16)); // AD /* 问题2:二进制转十进制 */ function bin2dec(binStr) { var arr=binStr.split(''); var len=arr.length; var res=0; arr.forEach(function (item,index) { res+=item*Math.pow(2,len-index-1); }); return res; } console.log(bin2dec("100000")); //32 /* 问题3:二进制转其他进制 */ function bin2(binStr,base) { // 先将二进制转为十进制 var num=bin2dec(binStr); //再将十进制转为其他进制 return dec2(num,base); } console.log(bin2("100000",8)); //40 console.log(bin2("100000",16)); //20 console.log(bin2("100000",5)); //112 console.log(bin2("100000",2)); //100000 console.log(bin2("100000",10)); //32
相关文章推荐
- js 实现数字的进制转换
- JS实现进制转换
- JS实现进制转换
- js实现浮动框【缓冲效果】
- 学习Js(1)-使用Jquery实现滑动切换效果
- js实现一个简单的锁屏功能
- js实现鼠标触发图片抖动效果的方法
- JS解析XML文件和字符串的跨浏览器实现
- 数据去重复(txt文件去重复,js实现)
- 使用JavaScriptCore实现OC和JS交互详解
- Js实现类似PHP里trim方法
- JS实现依次获取
- JS 分页实现
- Js保留小数点的4种效果实现代码分享
- 在gridview模板列批量获取文本框的值(在JS如何实现)
- js实现@提到好友
- Cocos2d-js3.3 模态对话框的实现
- 手机腾讯网js增量更新设计和实现
- HTML5画布知识:在Three.js文件实现WebGL Plane