前言/*一般十进制转其他进制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 }