获取数字 num 二进制形式第 bit 位的值。注意:
1、bit 从 1 开始
2、返回 0 或 1
3、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1
// FED48二进制转换 // 描述 // 获取数字 num 二进制形式第 bit 位的值。注意: // 1、bit 从 1 开始 // 2、返回 0 或 1 // 3、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1 // 示例1 // 输入: // 128, 8 // 输出: // 1 function valueAtBit(num, bit) { // 解法1 将num转变成二进制字符数组 let binary = num.toString(2).split(""); return binary[binary.length - bit]; // // 解法2 利用位运算符‘&’ // return num & Math.pow(2,bit-1) ? 1 : 0; // // 解法3 与解法2类似,多用一个位运算符“>>” // return (num >> (bit-1)) & 1; }
function valueAtBit(num, bit) { return num.toString(2).substr(0-bit,1); }
function valueAtBit(num, bit) { if ( bit < 1 ) return -1 ; var numT = 1 ; numT = numT << (bit -1 ) ; if( (num & numT) == 0 ){ return 0; }else{ return 1 ; } }