Переведем число 23 в двоичную систему счисления. Для этого разделим его на 2, получим целую часть и остаток от деления. Целую часть снова делим на 2 и получаем целую часть и остаток. Так делаем до тех пор, пока целая часть не станет меньше делителя (то есть пока она не станет равна 1).
23 2
22 11 2
1 10 5 2
1 4 2 2
1 2 1
Теперь начиная с этой единицы выписываем в обратном порядке все остатки от деления. Это и будет запись числа 23 в двоичной системе счисления:
2310=101112
Опишем соответствующую процедуру:
ProgramExample_79;
Procedure Rec(n: Integer);
Begin
If n>1 Then Rec(n div 2);
Write(n mod 2);
End;
Покажем вызовы процедуры для числа 23. Первый вызов процедуры производится в основной программе.
Результат: 10111.
Первая цифра (1) выводится на экран из последнего вызова процедуры Reс, следующая цифра (0) - из предпоследнего и так далее, последняя (1) − из первого. Таким образом, вывод очередной цифры происходит перед выходом из очередного экземпляра процедуры Reс.