面试 字符串补全

需求

将给定数字转换成二进制字符串。如果字符串长度不足 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 协议》,转载必须注明作者和本文链接
pardon110
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
开发者 @ 社科大
文章
134
粉丝
24
喜欢
101
收藏
55
排名:106
访问:8.9 万
私信
所有博文
社区赞助商