题解 | #二进制转换#

二进制转换

http://www.nowcoder.com/practice/7b74386695cc48349af37196f45e62a8

// FED50二进制转换

// 描述
// 将给定数字转换成二进制字符串。如果字符串长度不足 8 位,则在前面补 0 到满8位。

// 示例1
// 输入:
// 65

// 输出:
// 01000001

// FED50二进制转换

// 描述
// 将给定数字转换成二进制字符串。如果字符串长度不足 8 位,则在前面补 0 到满8位。

// 示例1
// 输入:
// 65

// 输出:
// 01000001

function convertToBinary(num) {
    // 方法1 使用toString(),split(),unshift(),join()
    // 若二进制不足8位
    if (num < 256) {
        // 使用toString(2)转换成二进制字符串,
        // 然后用split("")分割成字符串数组
        let binaryStrArr = num.toString(2).split("");
        // 字符串数组长度小于8时给前面unshift ‘0’
        while (binaryStrArr.length < 8) {
            binaryStrArr.unshift('0');
        }
        // 返回字符串数组连接成的字符串
        return binaryStrArr.join("");
    }
    // 否则
    return num.toString(2);

    // // 方法2 新建一个8个'0'组成的字符串
    // // 使用toString(2)将给定数字转换成二进制字符串
    // // 根据该字符串的长度与0进行拼接
    // let binaryStr = num.toString(2);
    // if (binaryStr.length < 8) {
    //     return '00000000'.slice(binaryStr.length) + binaryStr;
    // }
    // return binaryStr;

    // // 方法3 直接将'00000000'与字符串形式的二进制数拼接,返回后8位
    // return ('00000000' + num.toString(2)).slice(-8);
    // // 缺点是仅适用于原数字小于8的情况,可修改如下:
    // if (num < 256) {
    //     return ('00000000' + num.toString(2)).slice(-8);
    // }
    // return num.toString(2);
}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
5
收藏
分享
牛客网
牛客企业服务