Испольнитель Байт работает с беззнаковым 8-разрядным представлением целых чисел. Байт может исполнять команды, которым присвоены номера:
1 - вычесть 1;
2 - сдвинуть влево (исполнитель сдвигает число на один двоичный разряд влево; значение освободившегося разряда справа обнуляется).
Исполнитель начал с вычисления с числа 100(в десятичной системе счисления) и выполнил цепочку команд 21211. Какое десятичное число получилось в результате выполнения этого алгоритма?
Решение.
Исходное положение:
Преобразуем число в двоичную запись:
100 / 2 = 50. Остаток 0;
50 / 2 = 25. Остаток 0;
25 / 2 = 12. Остаток 1;
12 / 2 = 6. Остаток 0;
6 / 2 = 3. Остаток 0;
3 / 2 = 1. Остаток 1.
Получившееся число в двоичной записи:
1100100
Исходное положение: 01100100
1-й шаг (сдвинуть влево):
11001000
2-й шаг (вычесть 1):
11000111
3-й шаг (сдвинуть влево):
10001110
4-й шаг (вычесть 1):
10001101
5-й шаг (вычесть 1):
10001100
Результат:
10001100 = 1*2^2 + 1*2^3 + 2^7 = 4 + 8 + 128 = 140
Ответ: 140.