js二进制.八进制.十六进制转0b00.0o00.0x00格式以及十进制转二进制.八进制.十六进制


前言/*一般十进制转其他进制value.toString(radix), 其他进制转十进制parseInt(value,radix)*/

十进制转二进制.八进制.十六进制,其实在转为0b00,0o00,0x00格式后可以直接使用

Number(typeValue)    //typeValue为0b00或0o00或0x00格式数据

接下来讲重点的,我吧三个不同转换都放在一个方法里了,按个人需求修改或者拆分

 1     /**
 2      * @param {Number} decimal //传入的十进制数值
 3      * @param {String | Number} leng //传入的长度
 4      * @param {String} type //转换的进制
 5      * 此处使用()=>{}注意this指向
 6      */
 7     //decimal为传入的十进制数值
 8     //leng为传入的长度
 9     //type为转换的进制
10     let transformation = (decimal=0, leng=0, type="hexadecimal")=>{
11       // toUpperCase(); //转换大写
12       // toLowerCase(); //转换小写
13       let reg = new RegExp("^[0-9]*[0-9][0-9]*$"); //验证正整数和零
14       if(reg.test(Number(leng))){
15         let [arr, i] = [[], 0];
16         for(i; i<leng; i++){
17           arr.push(0);
18         }
19         switch(type){
20           case "binary":
21           let binary = decimal.toString(2).toUpperCase();
22           arr = arr.join("").substr(binary.length);
23           return `0b${arr}${binary}`;
24             break;
25           case "octal":
26           let octal = decimal.toString(8).toUpperCase();
27           arr = arr.join("").substr(octal.length);
28           return `0o${arr}${octal}`;
29             break;
30           case "hexadecimal":
31           let hexadecimal = decimal.toString(16).toUpperCase();
32           arr = arr.join("").substr(hexadecimal.length);
33           return `0x${arr}${hexadecimal}`;
34             break;
35         }
36       }
37       else{
38         return console.error("(transformation method) leng must be a positive integer or zero");
39       }
40     }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM