В этом задании вы собираетесь написать переводчика для простого языка, который я составил. Язык основан на одном аккумуляторе A, длина которого составляет ровно один байт. В начале программы A = 0. Это языковые инструкции:
!: Инверсия
Эта инструкция просто инвертирует каждый бит аккумулятора. Каждый ноль становится единым целым и каждый становится нулем. Просто!
>: Сдвиг вправо
Эта инструкция сдвигает каждый бит в A на одно место вправо. Самый левый бит становится нулем, а самый правый бит сбрасывается.
<: Сдвиг влево
Эта инструкция сдвигает каждый бит в A на одно место влево. Самый правый бит становится нулем, а самый левый бит отбрасывается.
@: Поменять местами
Эта инструкция меняет старшие четыре бита А на нижние четыре бита. Например, если A есть 01101010и вы выполняете @, A будет 10100110:
____________________
| |
0110 1010 1010 0110
|_______|
Вот и все инструкции! Просто, правда?
правила
- Ваша программа должна принять ввод один раз в начале. Это будет строка кода. Это не интерактивный переводчик! Вы можете принять ввод только один раз и не нужно возвращаться к началу, как только эта строка была выполнена.
- Ваша программа должна оценить указанный вклад. Каждый персонаж, который не упомянут выше, игнорируется.
- Ваша программа должна затем распечатать окончательное значение аккумулятора в десятичном виде.
- Применяются обычные правила для действительных языков программирования.
- Стандартные лазейки запрещены.
- Это код-гольф , выигрывает наименьшее количество байтов.
Вот несколько небольших программ для проверки ваших работ. Перед стрелкой - код, после - ожидаемый результат:
!->255!>>->63!<@->239!nop!&6*!->255
Наслаждайтесь!



! -> 255что мы будем использовать 8 бит на байт здесь? Вопрос не явный.