转换这些基数
| 十进制 | 二进制 | 十六进制 |
|---|---|---|
| 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