数字的二进制表示,为什么这样
Binary representation of a number, why so
int DecimalToBinary (int number){
int binary = 0, remainder = 0, i = 1;
while (number != 0){
remainder = number % 2;
number /= 2;
binary += remainder * i;
i *= 10;
}
return binary;
}
有一个函数可以将数字从十进制转为二进制。使用 while 循环的前两行,一切似乎都很清楚,但是,我不明白为什么我们需要 binary += remainder * i,以及为什么 i *= 10.
请解释为什么会这样。
虽然评论已经说明了答案。考虑以下数字,即 abcd。这个数字也可以表示为
a*1000+b*100+c*10+d
。这是行 binary += remainder * i;
的唯一目的,在每次迭代后我们将 i
乘以 10 以增加倍数。希望它回答了您的问题。
int DecimalToBinary (int number){
int binary = 0, remainder = 0, i = 1;
while (number != 0){
remainder = number % 2;
number /= 2;
binary += remainder * i;
i *= 10;
}
return binary;
}
有一个函数可以将数字从十进制转为二进制。使用 while 循环的前两行,一切似乎都很清楚,但是,我不明白为什么我们需要 binary += remainder * i,以及为什么 i *= 10.
请解释为什么会这样。
虽然评论已经说明了答案。考虑以下数字,即 abcd。这个数字也可以表示为
a*1000+b*100+c*10+d
。这是行 binary += remainder * i;
的唯一目的,在每次迭代后我们将 i
乘以 10 以增加倍数。希望它回答了您的问题。