面试 字符串补全
需求
将给定数字转换成二进制字符串。如果字符串长度不足 8 位,则在前面补 0 到满8位。
示例
输入
65
输出
01000001
解法
方式1 使用循环不停补左侧补零
function convertToBinary(num) {
var str = num.toString(2);
while(str.length < 8) {
str = "0" + str;
}
return str;
}
方式2 定长补零切片
function convertToBinary(num) {
return ('00000000' + num.toString(2)).slice(-8);
}
方式3 先计算后补位
function convertToBinary(num) {
var str = num.toString(2);
return "0".repeat(8 - str.length) + str;
}
方式4 对于es8+,可用一行搞定
function convertToBinary(num) {
return num.toString(2).padStart(8,"0")
}
小结
方式1比方式2稍微费内存,原因在于不停的新生成变量。
方式3常规思路,最后一个需要高版本js支持,简单直接。
本作品采用《CC 协议》,转载必须注明作者和本文链接