首页 > 试题广场 >

二进制转换

[编程题]二进制转换
  • 热度指数:44811 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
获取数字 num 二进制形式第 bit 位的值。注意:
1、bit 从 1 开始
2、返回 0 或 1
3、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1
示例1

输入

128, 8

输出

1
function valueAtBit(num, bit) {
    let num2 = parseInt(num).toString(2)
    return num2[num2.length - bit]
}
toString(num)转num进制
发表于 2021-04-01 12:15:37 回复(0)
function valueAtBit(num, bit) {
    let arr = [];
    while(num / 2 > 0) {
        arr.push(num % 2);
        num = Math.floor(num / 2);
    }
    return arr[bit - 1];
    
}
编辑于 2021-03-18 21:06:51 回复(0)
function valueAtBit(num, bit) {
return parseInt(num).toString(2).split("").reverse()[bit-1]
}

发表于 2020-09-10 23:25:07 回复(0)
function valueAtBit(num, bit) {
    return (num >> (bit -1)) & 1;
}

function valueAtBit(num, bit) {
    var newNum = num.toString(2);
    return newNum[newNum.length - bit];
}

发表于 2019-09-03 19:06:29 回复(0)
从原理上进行转化为二进制数字的数组,然后取出对应位的值。
function valueAtBit(num, bit) {
    var temp = []
    var rest = num;
    do{
        temp.push(rest%2);
        rest = Math.floor(rest/2) ;
    }while(rest>=1);
    
    return temp[bit-1];
        
}
发表于 2019-08-19 20:35:16 回复(0)
function valueAtBit(num, bit) {
    var result=parseInt(num).toString(2);
    result= result.split('').reverse();
    return result[bit-1];
}
发表于 2019-08-06 15:12:42 回复(0)
十进制纯数学解法
function valueAtBit(num, bit) {
    return parseInt(num/Math.pow(2,bit-1))%2;
}

发表于 2017-07-11 23:52:57 回复(0)

问题信息

难度:
7条回答 19351浏览

热门推荐

通过挑战的用户

查看代码
二进制转换