Number.toString(2) 是否在 javascript 中省略了末尾的 0?

Number.toString(2) is omitting 0's from end in javascript?

我试图通过首先将其转换为字符串来反转 32 位无符号整数,但是 toString(2) 函数从末尾开始提交零,因此我得到的输出是错误的。

我的代码:

var reverseBits = function(n) {
    let reverserN=(n>>>0).toString(2).split('').reverse().join('');
    console.log(reverserN)
    
    return parseInt(reverserN,2)
};

输出:

您的意见 00000010100101000001111010011100

标准输出 00111001011110000010100101 //末尾省略0

输出 15065253 (00000000111001011110000010100101)

预计 964176192 (00111001011110000010100101000000)

而且,如果我尝试使用 BigInt,那么它最后会给我 n。像这样 00111001011110000010100101n.

为什么省略了0?我怎样才能阻止它从末尾省略 0?

通过在 join('') 工作后添加 padEnd(32,0)。它只是在结果字符串的末尾添加 0,使其达到给定的长度。

我的代码:

var reverseBits = function(n) {
    let reverserN=(n>>>0).toString(2).split('').reverse().join('').padEnd(32,0);
    console.log(reverserN);
    return parseInt(reverserN,2)
};

输出:

00111001011110000010100101000000 //6 0's at the end of the string