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
我试图通过首先将其转换为字符串来反转 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