在这个挑战中,您将为我编写的一种简单语言编写一个解释器。该语言基于单个累加器A,该累加器A的长度恰好是一个字节。在程序的开头,A =0。这些是语言说明:
!
:反转
该指令仅将累加器的每一位取反。每个零变为1,每个零变为0。简单!
>
:右移
该指令将A中的每一位右移一位。最左边的位变为零,最右边的位被丢弃。
<
:左移
该指令将A中的每一位向左移一位。最右边的位变为零,最左边的位被丢弃。
@
:交换Nybbles
该指令将A的高四位与低四位交换。例如,如果A是01101010
并且您执行@
,则A将是10100110
:
____________________
| |
0110 1010 1010 0110
|_______|
这就是所有指示!简单吧?
规则
- 您的程序必须在开始时接受一次输入。这将是一行代码。这不是交互式解释器!您只能接受一次输入,而不必在执行该行后循环回到起始位置。
- 您的程序必须评估所述输入。上面没有提到的每个字符都将被忽略。
- 然后,您的程序应以十进制打印出累加器的最终值。
- 适用有效编程语言的常规规则。
- 不允许出现标准漏洞。
- 这是代码高尔夫球,最小字节数获胜。
这里有一些小程序可以测试您提交的内容。箭头之前是代码,之后是预期结果:
!
->255
!>>
->63
!<@
->239
!nop!&6*!
->255
请享用!
! -> 255
我们在这里每个字节要使用8位吗?这个问题不是很明确。