Javascript 需要有人谁可以解释我这个代码(十进制到二进制转换器)

Javascript 需要有人谁可以解释我这个代码(十进制到二进制转换器),javascript,Javascript,根据num是偶数还是奇数,将0或1附加到bin bin[bin.length] = num % 2; 正如评论所说,这将num除以2,不带余数。总的来说,循环将num的二进制表示形式的数字从最低有效到最高放入bin。这就是为什么它最终会被逆转 根据num是偶数还是奇数,将0或1附加到bin bin[bin.length] = num % 2; 正如评论所说,这将num除以2,不带余数。总的来说,循环将num的二进制表示形式的数字从最低有效到最高放入bin。这就是为什么它在结尾处是颠倒

根据num是偶数还是奇数,将0或1附加到
bin

  bin[bin.length] = num % 2;
正如评论所说,这将num除以2,不带余数。总的来说,循环将num的二进制表示形式的数字从最低有效到最高放入bin。这就是为什么它最终会被逆转

根据num是偶数还是奇数,将0或1附加到
bin

  bin[bin.length] = num % 2;

正如评论所说,这将num除以2,不带余数。总的来说,循环将num的二进制表示形式的数字从最低有效到最高放入bin。这就是为什么它在结尾处是颠倒的。

bin[bin.length]只是将装箱的数字(实际上是字符串)的索引。对于每个bin.reverse(),它将递增一。num是数字形式的数字。num>>=1只是右移1位。这会影响将小数点刻为2。bin[bin.length]=num%2将结果添加到0或1,并将每次添加到字符串中以形成最终答案。
我不知道你不明白哪一部分。某些运算符或整个逻辑?

bin[bin.length]只是将装箱的数字(实际上是字符串)的索引。对于每个bin.reverse(),它将递增一。num是数字形式的数字。num>>=1只是右移1位。这会影响将小数点刻为2。bin[bin.length]=num%2将结果添加到0或1,并将每次添加到字符串中以形成最终答案。
我不知道你不明白哪一部分。某些运算符或整个逻辑?

您想知道如何将值放入正确的位置。嗯,bin以一个长度为0的空数组(
bin=[]
)开始。所以
bin[bin.length]=bin[0]
开始,第一件事适当地插入索引0

length
属性在插入数组时在内部维护。因此,它将始终插入第一个可用插槽


示例:在索引0处添加某些内容后,
length
属性更新为1,下一次插入在
bin[bin.length]
处完成,该位置相当于
bin[1]

您想知道如何将值放入正确的位置。嗯,bin以一个长度为0的空数组(
bin=[]
)开始。所以
bin[bin.length]=bin[0]
开始,第一件事适当地插入索引0

length
属性在插入数组时在内部维护。因此,它将始终插入第一个可用插槽


示例:在索引0处添加某些内容后,
length
属性更新为1,下一次插入在
bin[bin.length]
处完成,该位置相当于
bin[1]

我仍然不明白bin[bin.length]是如何自动增加bin的索引值的?您将其声明为数组,以便索引像i++一样递增。如果你将is声明为var,那么试试。我仍然不明白bin[bin.length]是如何自动增加bin的索引值的?你将其声明为数组,以便索引像i++一样递增。如果您将is声明为var,那么请尝试。我不理解运算符,谢谢您的回答,但我仍然不理解bin[bin.length]如何自动增加bin的索引值?我没有正确解释。bin[bin.length]=num%2将添加0或1,对吗?所以在循环bin[]为空之前。在第一次迭代中,bin[0]=X(其中X为0或1)。在第二次迭代中,bin.length现在等于1,而不是0,因为bin[]现在不是emty。同样,bin[1]=0或1。在第三次迭代中,bin.length等于3,依此类推。我不理解运算符,谢谢你的回复,但我仍然不理解bin[bin.length]是如何自动递增bin的索引值的?我没有正确解释。bin[bin.length]=num%2将添加0或1,对吗?所以在循环bin[]为空之前。在第一次迭代中,bin[0]=X(其中X为0或1)。在第二次迭代中,bin.length现在等于1,而不是0,因为bin[]现在不是emty。同样,bin[1]=0或1。在第三次迭代中,bin.length等于3,以此类推。
  bin[bin.length] = num % 2;
  num >>= 1;