Двоичное представление числа, почему так

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.

Объясните пожалуйста, почему все именно так.


Ответы (0 шт):