轉換這些基數
| 十進制 | 二進制 | 十六進位 |
|---|---|---|
| 0 | 00000000 | 0x0 |
| 1 | 00000001 | 0x1 |
| 2 | 00000010 | 0x2 |
| 3 | 00000011 | 0x3 |
| 4 | 00000100 | 0x4 |
| 5 | 00000101 | 0x5 |
| 6 | 00000110 | 0x6 |
| 7 | 00000111 | 0x7 |
| 8 | 00001000 | 0x8 |
| 9 | 00001001 | 0x9 |
| 10 | 00001010 | 0xa |
| 11 | 00001011 | 0xb |
| 12 | 00001100 | 0xc |
| 13 | 00001101 | 0xd |
| 14 | 00001110 | 0xe |
| 15 | 00001111 | 0xf |
| 16 | 00010000 | 0x10 |
本網頁使用 JavaScript 來轉換基數。JavaScript 提供 parseInt 和 toString 方法來達到這些目的。
toString 的第一個參數是用來轉換十進位數字為特定的基數。
var i = 334;
console.log(i.toString(16)); // display 14e
parseInt 的第二個參數是用來將特定的基數轉換為十進位。
console.log(parseInt('101001110',2)); // display 334
但 parseFloat 沒有提供轉換基數的參數。如果要從任何基數轉換浮點數,您必須寫一些腳本。
我使用 Stackoverflow 中的腳本。
function parseFloat(string, radix) {
string = string.split(/\./);
if (string[0] == '') {
string[0] = "0";
}
if (string.length > 1 && string[1] != '') {
var fractionLength = string[1].length;
string[1] = parseInt(string[1], radix);
string[1] *= Math.pow(radix, -fractionLength);
return parseInt(string[0], radix) + string[1];
}
return parseInt(string[0], radix);
}
numbers - Converting hexadecimal to float in javascript - Stack Overflow
此函數提供類似 parseInt 的基數轉換參數。
console.log(parseFloat('21.666666666666', 16)); // display 33.4