获取数字 num 二进制形式第 bit 位的值。注意:
1、bit 从 1 开始
2、返回 0 或 1
3、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1
实现代码
法一:
function valueAtBit(num, bit) {
var binaryCode=num.toString(2); //toString(2)输出以二进制表示的字符串值
return binaryCode[binaryCode.length-bit] //取出第bit位的值
}
法二:
function valueAtBit(num, bit) {
var binaryCode=num.toString(2);
var _binaryCode=binaryCode.split('').reverse(); //调整原二进制的顺序
return _binaryCode[bit-1]
所涉及的知识点
-
split( )方法:可以基于指定的分隔符将一个字符串分割成多个子字符串,并将结果放在一个数组中。
①分隔符可以是字符串,也可以是一个 RegExp 对象(这个方法不会将字符串看成正则表达式)。
注:对 split()中正则表达式的支持因浏览器而异var colorText = "red,blue,green,yellow"; var colors1 = colorText.split(","); //["red", "blue", "green", "yellow"] var colors3 = colorText.split(/[^\,]+/); //["", ",", ",", ",", ""] //使用正则表达式,可以取得包含逗号字符的数组 //第一项和最后一项是两个空字符串,是因为通过正则表达式指定的分隔符出现在了字符串的开头(即子字符串"red")和末尾(即子字符串"yellow")
②split()方法可接受可选的第二个参数(用于指定数组的大小),以便确保返回的数组不会超过既定大小。
var colorText = "red,blue,green,yellow"; var colors2 = colorText.split(",", 2); //["red", "blue"]