이 도전에서 당신은 내가 만든 간단한 언어에 대한 통역을 작성합니다. 언어는 정확히 하나의 바이트 길이 인 단일 누산기 A를 기반으로합니다. 프로그램 시작시 A = 0입니다. 다음은 언어 지침입니다.
!
: 반전
이 명령은 단순히 누산기의 모든 비트를 반전시킵니다. 모든 0은 1이되고 모든 0은 0이됩니다. 단순한!
>
: 오른쪽으로 이동
이 명령은 A의 모든 비트를 오른쪽으로 한 자리 이동합니다. 가장 왼쪽 비트는 0이되고 가장 오른쪽 비트는 버려집니다.
<
: 왼쪽으로 이동
이 명령은 A의 모든 비트를 왼쪽으로 한 자리 이동합니다. 가장 오른쪽 비트는 0이되고 가장 왼쪽 비트는 버려집니다.
@
스왑 니 블스
이 명령어는 A의 상위 4 비트를 하위 4 비트로 교체합니다. A는 경우 예를 들어, 01101010
당신이 실행 @
, A는 것입니다 10100110
:
____________________
| |
0110 1010 1010 0110
|_______|
모든 지시 사항입니다! 간단 하죠?
규칙
- 프로그램은 처음에 한 번 입력을 받아 들여야합니다 . 이것은 한 줄의 코드가 될 것입니다. 이것은 대화식 통역사 가 아닙니다 ! 입력은 한 번만 허용 할 수 있으며 해당 라인이 실행 된 후 시작으로 되돌아 갈 필요가 없습니다.
- 귀하의 프로그램은 상기 입력을 평가해야합니다. 위에서 언급하지 않은 모든 문자는 무시됩니다.
- 그런 다음 프로그램은 누산기의 최종 값을 10 진수로 인쇄해야합니다.
- 유효한 프로그래밍 언어에 대한 일반적인 규칙이 적용됩니다.
- 표준 허점은 허용되지 않습니다.
- 이것은 code-golf , 가장 작은 바이트 수입니다.
다음은 제출물을 테스트하는 작은 프로그램입니다. 화살표가 코드 앞, 예상 결과 후 :
!
->255
!>>
->63
!<@
->239
!nop!&6*!
->255
즐겨!
! -> 255
우리가 여기서 바이트 당 8 비트를 사용한다고 가정하고 있습니까? 질문은 명백하지 않습니다.