首页 文章

即使使用基数,parseInt()也不会将前导零视为零

提问于
浏览
0

当我想将二进制字符串转换为十进制基数(如下所示: parseInt('0001010', 2) )时,Javascript返回一个十进制数,但是上面例子中提到的前导零被忽略的版本 . 有没有什么办法解决这一问题?

2 回答

  • 2

    十进制表示无法跟踪前导零 . 如果您希望在结果中保留前导零,则需要一种根本不同的方法(例如,将输出保持为字符串) .

    或者,如果你先验地知道结果的宽度,你可以在输出上用前导零填充它 .

  • 1

    假设您的号码为'00000101101101':

    var number = '00000101101101';
    var length = number.length;
    var decimal_number = parseInt(number, 2);
    
    // going back
    
    var new_number = decimal_number.toString(2);
    var new_length = new_number.length;
    var n_zeros = length - new_length;
    var zeros = (n_zeros >= 2 ? Array(n_zeros+1).join("0") : "0");
    new_number = zeros + new_number;
    

相关问题