首页 > 试题广场 >

二进制转换

[编程题]二进制转换
  • 热度指数:40046 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
将给定数字转换成二进制字符串。如果字符串长度不足 8 位,则在前面补 0 到满8位。
示例1

输入

65

输出

01000001
推荐
首先通过toString方法将num转为2进制数形式,然后判断其长度是否足够8位。如不足8位,则声明一个“0000000”字符串用于补0,因为目标的2进制数形式最少为一位,因此最多只需要7个0;通过slice方法对“0000000”进行截取,然后将其结果加在目标前面即可。
function convertToBinary(num) {
     //转换为2进制格式
     var s = num.toString(2);
     //获得2进制数长度
     var l = s.length;
     if(l<8){
         //声明一个字符串用于补满0
         var s1 = "0000000";
         var s2 = s1.slice(0,8-l);
         s = s2+s;  
     }
     return s;
 }


编辑于 2015-08-19 10:51:06 回复(31)
    function convertToBinary(num) {
    let ar=(num.toString(2)+'').split('')
    let len=8-ar.length
    for(i=0;i<len;i++){
     ar.unshift('0')
    }
   return parseInt( ar.reduce((total,item)=>{
    return total+item
  }))
    }
用浏览器打开,牛客这里测试的话需要删除parseint()
发表于 2023-06-02 11:42:34 回复(0)
function convertToBinary(num) {
    let to = num.toString(2).split("")
    while(to.length<8){
        to.unshift('0')
    }
    return to.join("")
}
发表于 2023-05-08 16:15:45 回复(0)
不知道哪里有问题,能正常运行....
function convertToBinary(num) {
    return num.toString(2).padStart(8,"0");
}
发表于 2023-04-02 18:30:17 回复(0)
function convertToBinary(num) {
return num.toString(2).padStart(8,'0')
}
上面代码为什么报错啊
发表于 2023-04-01 22:13:24 回复(0)
  let tem_str = num.toString(2)
      let jug_par = tem_str.length
      while (jug_par < 8) {
        tem_str = jug_par ? '0' + tem_str : tem_str
        jug_par = tem_str.length
      }
      return tem_str

发表于 2022-12-06 18:25:32 回复(0)
padStart补零,本地测试可以通过
发表于 2022-12-01 13:34:44 回复(0)
function convertToBinary(num) {
            let arr=[]
            while(num>0){
                let temp = num%2;
                arr.unshift(Math.floor(temp));
                num = Math.floor(num/2);
            }
            if(arr.length<8){
                for(let i=arr.length;i<8;i++)
                arr.unshift(0)
            }
            let str=''
            for(let i=0;i<8;i++){
                str=str+arr[i]
            }
            return str;
        }

发表于 2022-11-26 21:13:12 回复(0)
利用from展开为数组循环补零
function convertToBinary(num) {
            let newNum = num.toString(2)
            if(newNum.length<8){
                let arr = Array.from(newNum)
                for(i=0;i<8-newNum.length;i++){
                    arr.unshift(0)
                }
                return arr.join("")
            }else{
                return newNum
            }
}   
发表于 2022-11-17 01:33:03 回复(0)
function convertToBinary(num) {
    let newNum =  num.toString(2)
    return new Array(8 - newNum.length).fill('0') + newNum;
}

发表于 2022-08-30 10:38:26 回复(0)
function convertToBinary(num) {
    let two = num.toString(2)
    if (two.length < 8) {
        two = `${'0'.repeat(8 - two.length)}${two}`
    }
    return two
}

发表于 2022-08-25 21:06:29 回复(0)
function convertToBinary(num) {
    let res = new Array(8).fill(0);
    let len = 7;
    while(num){
        res[len--] = num % 2;
        num = Math.floor(num/2);
    }
    return res.join('');
}

发表于 2022-08-19 17:47:41 回复(0)
function convertToBinary(num) {
    var len = num.toString(2).length
    if(len < 8)
        return '0'.repeat(8-len) + num.toString(2)
    return num.toString(2)
}
发表于 2022-08-09 09:55:41 回复(0)
 return num.toString(2).padStart(8,'0'); 似乎还不支持这个方法
发表于 2022-08-03 15:05:18 回复(0)
function convertToBinary(num) {
    let r = num.toString(2)
    let s = '0'.repeat(8 - r.length)
    return s.concat(r)
}

发表于 2022-07-31 21:22:51 回复(0)
function convertToBinary(num) {
    let res = num.toString(2)
    let resArr = res.split('')
    while(resArr.length<8){
        resArr.unshift('0')
    } return resArr.join('')
}
发表于 2022-03-25 13:53:39 回复(0)
function convertToBinary(num) {
    var str = num.toString(2);
    if (str.length<8){
        for(var i=0;i<8-str.length;i++){
            str = '0'+str;
        }
    }
    return str;
}

发表于 2022-02-15 17:56:45 回复(0)
function convertToBinary(num) {
    var b = num.toString(2)
    if (b.length<8) {
        var len = 8-b.length
        var zero = []
        for(var i =0;i<len;i++) {
            zero.push('0')
        }
        zero.push(b)
    	return zero.join('')
    }
    return b
}
没人与我一样吧
发表于 2022-02-07 15:02:06 回复(0)
使用 字符串 repeat方法补零
function convertToBinary(num) {
 let str = num.toString(2)
    return str.length<8?'0'.repeat(8-str.length)+str:str
}

发表于 2022-01-11 09:37:20 回复(0)
function convertToBinary(num) {
    return (num.toString(2).length>=8) ? num.toString(2) :  ("00000000" + num.toString(2)).slice(-8);
}

发表于 2022-01-05 14:27:58 回复(0)

问题信息

难度:
50条回答 18540浏览

热门推荐

通过挑战的用户

查看代码