Двоичное представление числа, почему так
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.
Объясните пожалуйста, почему все именно так.