我正在尝试通过将输入变量(十进制值)除以2并存储余数(如2年级数学余数)的方法来创建自己的十进制至二进制转换器,方法是将其始终为0或1.我稀薄的每个余数应该存储在一个数组中,我想也许应该倒过来,以便最高有效位在数组中的第一位(这是因为递减时,余数是从左到右填充的)。 Soooo是的,我真的不知道如何使用函数将余数存储在数组中在此先感谢您,如果有什么令人困惑的地方,请随时提出,因为即时消息甚至不确定这是否是执行此操作的最佳方法,这正是我想出的方法
function decimalToBinary(num) {
var bin = 0;
while (num > 0) {
bin = num % 2 + bin;
num >>= 1; // basically /= 2 without remainder if any
}
alert("That decimal in binary is " + bin);
}
您的代码几乎正确。主要问题是bin
开始时是0
;当您添加数字时,它们会以数字形式相加,因此您的代码最终只计算二进制1
:这样,10
是初始的0
,然后是+1+0+1+0
,结果是2
。您想将其作为字符串处理:""+1+0+1+0
产生1010
。因此,唯一需要的更改是:
仅复制粘贴toBin方法,我将其记为自定义方法。