-
做题时遇到的,对于输入的一组数字,需要求出这组数字里偶数的二进制,并将其二进制反转得到一个新的数字
-
这里面需要解决两个问题:1. 将可能是字符串的元素值转为整数;2. 求二进制对应的整数
-
以上两个问题都可以通过
parseInt()
解决,parseInt()
可解析一个字符串,并返回一个整数。 -
parseInt()
有两个参数string
:必需。要被解析的字符串。radix
:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
对parseInt
疑惑的点
-
之前一直不太熟悉
parseInt
怎么对字符串进行解析的,主要是看着要分情况考虑string
是以什么开头的,感觉很麻烦,学的一知半解的,静下心来看其实没那么麻烦 -
教程中,忽略第二个参数
radix
时,- 如果
string
以 “0x” 开头,parseInt()
会把string
的其余部分解析为十六进制的整数。 - 如果
string
以 0 开头,那么 ECMAScript v3 允许parseInt()
的一个实现把其后的字符解析为八进制或十六进制的数字。 - 如果
string
以 1 ~ 9 的数字开头,parseInt()
将把它解析为十进制的整数。 - 如果
string
的第一个字符不能被转换为数字,那么parseInt()
会返回NaN
。
- 如果
-
考虑第二个参数
radix
时,如果radix
是2,就把string
解析为二进制的数,是16就解析为16进制,没有写就默认转换为10进制数。
解决问题
let readline = '2';
// 将字符串转为数字类型
let a = parseInt(lines[i]);
// 求二进制
let brind = a.toString(2);
// 求二进制对应的整数
let brind = parseInt(a,2);