首页 > 试题广场 >

二进制转换

[编程题]二进制转换
  • 热度指数:40012 时间限制: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) {
    str = parseInt(num).toString(2)
    for(let i = 0; i < 8 - str.length; i ++){
        str = "0" +str
    }
    return str
}
进制转换
发表于 2021-04-01 12:22:46 回复(0)
function convertToBinary(num) {
    let bu_zero = {
        0: "",
        1: "0",
        2: "00",
        3: "000",
        4: "0000",
        5: "00000",
        6: "000000",
        7: "0000000",
        8: "00000000"
    };
    let tmp = num.toString(2);
    return bu_zero[8 - tmp.length] + tmp;
}

附上我写的诗:
发表于 2019-11-20 10:17:05 回复(1)
转换完二进制顺便往前面插8个0,直接取最末尾的八位数
function convertToBinary(num) {
     var jinzhi='00000000'+num.toString(2);
     return jinzhi.slice(-8);
}


发表于 2019-11-13 15:49:43 回复(0)
function convertToBinary(num) {
    return num.toString(2).padStart(8,"0");
}
convertToBinary(65);

这个可行吗?

发表于 2019-11-07 00:16:49 回复(0)
function convertToBinary(num) {
    return ('0000000'+num.toString(2)).slice(-8)
}

虽然有人已经回答了。。。

编辑于 2019-10-28 19:48:34 回复(0)
function convertToBinary(num) {
    var base2 = num.toString(2);
    if (base2.length < 8) {
        var base2List = base2.split("");
        for (var i = 0; i < 8 - (base2List.length); i++) {
            base2List.unshift("0");
        }
        var result = base2List.join("");
        return result;
    }
    return base2;
}
发表于 2019-10-24 09:07:11 回复(0)
function convertToBinary(num) {
    num = num.toString(2)
    if(num.length<8){
        let need = 8-num.length
        if(need === 0){
            return Number(num);
        }else{
            return "0".repeat(need)+ num
        }
    }
}
我这个咋就只能过50%,想不通
发表于 2019-10-23 17:02:22 回复(0)
function convertToBinary(num) {
    var str=num.toString(2);
    return ("00000000"+str).slice(-8);
}
发表于 2019-09-24 15:36:15 回复(0)
function convertToBinary(num) {
    var newNum = num.toString(2);
    if(newNum.length < 8) {
        newNum = ('00000000' + newNum).slice(-8);
    }
    return newNum;
}

发表于 2019-09-03 20:48:20 回复(0)
function convertToBinary(num) {
    var res = num.toString(2);
    while(res.length<8){
        res ="0"+res;
    }
    return res;
}


发表于 2019-09-01 10:30:43 回复(0)
代码一:
function convertToBinary(num) {
        var result=parseInt(num).toString(2);
        var index=8-result.length;
        while(index){
            result='0'+result;
            index--;
        }
    return result;
    }

代码二:
function convertToBinary(num) {
        var result=parseInt(num).toString(2);
        if(result.length<8){
            //alert('ok');
            var re1=8-result.length;
            //var index=repeat('0',re1)
            result='0'.repeat(re1)+result;
        }
        return result;
    }

代码二为何错了,本地运行没有错啊?有大佬能指教一下吗

发表于 2019-08-06 10:10:19 回复(0)
function convertToBinary(num) {
    return ("00000000" + num.toString(2)).slice(-8)
}
  • toString(radix)可以将十进制转为任意进制。
  • 字符串的slice方法可以方便的对字符串进行切割~ 传入-8表示切割最后8位。
发表于 2018-12-01 11:09:50 回复(0)
function convertToBinary(num) {
    var result = Number.prototype.toString.call(num, 2);
    return '00000000'.substr(0, 8 - result.length) + result;
}
编辑于 2018-02-09 00:28:20 回复(0)
function convertToBinary(num) {
    var bit = num.toString(2);
    var zeroSum = "";//差0的字符串
    if (bit.length < 8) {
        bit.toString();
        var len = 8 - bit.length;//取得需要添加0的个数
        for (var i = 0; i < len; i++) {
            zeroSum += "0";
        }
        bit=zeroSum + bit;
    }
    
    return bit;
}
发表于 2017-09-28 12:51:51 回复(0)
function convertToBinary(num) {
	var ans = num.toString(2);
	if(ans.length < 8) {
		var pad = '00000000'.slice(ans.length);
		var ans = pad + ans;
	}
	return ans;
}

编辑于 2017-05-15 13:56:10 回复(0)
function convertToBinary(num) {
    var bin = num.toString(2);
    var zero = '';
    for(var i = 8 - bin.length; i > 0; i--){
        zero = '0' + zero;
    }
    return zero + bin;
}

发表于 2017-03-15 23:52:39 回复(2)