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