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