Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript parseInt()不';t考虑前导零,即使是基数_Javascript_Binary_Converter_Base - Fatal编程技术网

Javascript parseInt()不';t考虑前导零,即使是基数

Javascript parseInt()不';t考虑前导零,即使是基数,javascript,binary,converter,base,Javascript,Binary,Converter,Base,当我想将二进制字符串转换为以10为基数的十进制数(如:parseInt('0001010',2))时,Javascript返回一个十进制数,但忽略了上面示例中提到的前导零。有没有办法解决这个问题?十进制表示法无法跟踪前导零。如果希望在结果中保留前导零,则需要一种根本不同的方法(例如,将输出保持为字符串) 或者,如果您事先知道结果的宽度,您可以在输出上用前导零填充它。因此假设您有数字“00000101101”: var number = '00000101101101'; var length =

当我想将二进制字符串转换为以10为基数的十进制数(如:
parseInt('0001010',2)
)时,Javascript返回一个十进制数,但忽略了上面示例中提到的前导零。有没有办法解决这个问题?

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


或者,如果您事先知道结果的宽度,您可以在输出上用前导零填充它。

因此假设您有数字“00000101101”:

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;

?? 这个例子的结果应该是数字10。你到底期望什么?@Pointy他得到了什么,事实上,这个数字的结果是ten@NPE哈哈,咖啡不够/太多:):)返回原始数字时,不会在左侧添加0。将长度存储在变量中,然后在恢复后,添加必要数量的0。当您发布答案时,我刚刚键入-+1这是正确的想法,但在JavaScript
0*n_零
中,它并没有达到代码期望的效果@那么它不是把字符串“0”
n
放了很多次了吗?不,它没有<代码>*始终是数字乘法。看到我在第一条评论中添加的链接了吗?@Juhana好了,伙计们,它现在起作用了吗?我刚刚重新编辑了它