JavaScript中的进制转换—toString()和parseInt()
很多时候,在我们写代码中需要用到二进制、八进制或者十六进制。所以我们要对十进制数字进行转换,可能我们会花一些时间写一个进制转换函数,但却很少有人知道,JavaScript已经给我们提供了进制转换的方法。
toString()
和parseInt()
首先我们先介绍以下toString()方法。
toString()
方法是JavaScript Number 对象中的方法。并且它的参数指定了其转换基数。
toString()
方法可把一个 Number 对象转换为一个字符串,并返回结果。
- 语法:
number.toString(radix)
- 参数值:
radix
:可选。规定表示数字的基数,是 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值。
值 | 描述 |
---|---|
2 | 数字以二进制值显示 |
2 | 数字以八进制值显示 |
2 | 数字以十六进制值显示 |
- 实例
在本例中,我们使用不同进制把一个数字转换为字符串:var num = 15; var a = num.toString(); var b = num.toString(2); var c = num.toString(8); var d = num.toString(16); //a,b,c, 和 d 输出结果: //15 //1111 //17 //f
parseInt()方法
parseInt()
是JavaScript 全局函数中的方法。平常我们可能经常用到,但我们却不知道他也能用来进制转换。
parseInt()
函数可解析一个字符串,并返回一个整数。
- 语法
parseInt(string, radix)
- 参数
参数 | 描述 |
---|---|
string | 必需。要被解析的字符串。 |
radix | 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。 |
- 只有字符串中的第一个数字会被返回。
- 开头和结尾的空格是允许的。
- 如果字符串的第一个字符不能被转换为数字,那么 parseInt() 会返回 NaN。
- 在字符串以"0"为开始时旧的浏览器默认使用八进制基数。ECMAScript 5,默认的是十进制的基数。
- 实例
我们将使用 parseInt() 来解析不同的字符串:parseInt("10"); //返回 10 parseInt("19",10); //返回 19 (10+9) parseInt("11",2); //返回 3 (2+1) parseInt("17",8); //返回 15 (8+7) parseInt("1f",16); //返回 31 (16+15) parseInt("010"); //未定:返回 10 或 8