Данил Душистов: «Решение 50 типовых задач по программированию на языке Pascal»
13
Для примера возьмем число 158 в десятичной системе счисления. Мы можем получить его
крайнюю цифру справа, которая равна 8, если возьмем остаток от деления 158 на число 10, являю-
щееся в данном случае основанием системы счисления. С другой стороны, если мы умножим 158
на 10, то
появляется новый разряд справа, и в результате мы получаем число 1580.
Согласно правилу те же самые арифметические законы актуальны и для двоичной системы
счисления. А это в свою очередь означает, что мы можем разработать алгоритм наподобие того,
который использовался в
задаче 9 для формирования числа, представляющего собой правую поло-
вину исходного числа, которая записана в реверсном порядке. Для этого нам нужно использовать
четыре переменных для хранения двоичных разрядов правой половины двоичной записи введен-
ного числа, добыть эти самые разряды с удалением их в исходном числе, сформировать из них дво-
ичную реверсную запись и выполнить сравнение. Обозначим эти переменные типа
byte как
a,
b,
c,
и
d.
Опишем сам алгоритм:
1)
Вводим число
n;
2)
Последовательно получаем 4 крайних справа разряда двоичной записи числа
n: присваи-
ваем их значение соответствующей переменной, а затем отбрасываем в исходном числе:
a := n mod 2;
n := n div 2;
b := n mod 2;
n := n div 2;
c := n mod 2;
n := n div 2;
d := n mod 2;
n := n div 2;
3)
Теперь нужно подумать, как видоизменится формула, с помощью которой мы получали
реверсную запись числа в
Do'stlaringiz bilan baham: