JS之進位制轉換(十進位制轉8,12,36進位制)
阿新 • • 發佈:2021-07-15
1.toString() 方法 :把數字轉化成字串
number.toString(radix)
radix:可選。規定表示數字的基數,是 2 ~ 36 之間的整數。若省略該引數,則使用基數 10。但是要注意,如果該引數是 10 以外的其他值,則 ECMAScript 標準允許實現返回任意值。
- 2 - 數字以二進位制值顯示
- 8 - 數字以八進位制值顯示
- 16 - 數字以十六進位制值顯示
例子:
var num = 15; var a = num.toString(); var b = num.toString(2); var c = num.toString(8); var d = num.toString(16); console.log('這是十進位制的15轉換的2進位制' + b) console.log('這是十進位制的15轉換的8進位制' + c) console.log('這是十進位制的15轉換的16進位制' + d)
2.32進位制轉換
思路: 把需要轉換的數進行 36的除法運算,餘數不斷除36,出來的數進行字串的拼接
那我們開始實現:
function getNums36() { var nums36 = []; for (var i = 0; i < 36; i++) { if (i >= 0 && i <= 9) { // 數字屬於1 -9 取值 nums36.push(i); } else { // 如果不是1到9,從字母中取 :String.fromCharCode(i + 87) nums36.push(String.fromCharCode(i + 87)); } } return nums36; } //十進位制數轉成36進位制 function scale36(n){ var arr = []; var nums36 = getNums36(); while(n){ var res = n % 36; //作為下標,對應的36進位制數,轉換成 arr.unshift(nums36[res]); //去掉個位 n = parseInt(n / 36); } return arr.join(""); }