इस चुनौती में आप एक साधारण भाषा के लिए दुभाषिया लिखने जा रहे हैं जिसे मैंने बनाया है। भाषा एक एकल संचायक ए पर आधारित है, जो लंबाई में बिल्कुल एक बाइट है। एक कार्यक्रम की शुरुआत में, ए = 0. ये भाषा निर्देश हैं:
!
: उलटा
यह निर्देश बस संचायक के हर बिट को निष्क्रिय कर देता है। हर शून्य एक हो जाता है और हर एक शून्य हो जाता है। सरल!
>
: शिफ्ट राइट
यह निर्देश A एक स्थान पर दाईं ओर प्रत्येक बिट को स्थानांतरित करता है। सबसे बाईं ओर एक शून्य बन जाता है और सबसे दाहिना बिट को छोड़ दिया जाता है।
<
: शिफ्ट लेफ्ट
यह निर्देश हर एक बिट को बाईं ओर एक स्थान पर शिफ्ट करता है। सबसे दाहिना बिट शून्य हो जाता है और सबसे बाएं बिट को छोड़ दिया जाता है।
@
: स्वप नबबल्स
यह निर्देश ए के शीर्ष चार बिट्स को नीचे चार बिट्स के साथ स्वैप करता है। उदाहरण के लिए, यदि A है 01101010
और आप निष्पादित करते हैं @
, तो A होगा 10100110
:
____________________
| |
0110 1010 1010 0110
|_______|
यह सब निर्देश है! सरल, सही?
नियम
- आपके कार्यक्रम को शुरुआत में एक बार इनपुट स्वीकार करना होगा । यह कोड की एक पंक्ति होगी। यह वह जगह है नहीं एक इंटरैक्टिव दुभाषिया! आप केवल एक बार इनपुट स्वीकार कर सकते हैं और उस लाइन को निष्पादित किए जाने के बाद वापस शुरू करने के लिए लूप करने की जरूरत नहीं है।
- आपके कार्यक्रम को कहा इनपुट का मूल्यांकन करना चाहिए। ऊपर वर्णित हर वर्ण को अनदेखा नहीं किया जाता है।
- आपका प्रोग्राम तब दशमलव में संचायक के अंतिम मूल्य को प्रिंट करना चाहिए।
- मान्य प्रोग्रामिंग भाषाओं के लिए सामान्य नियम लागू होते हैं।
- मानक खामियों को अस्वीकार कर दिया जाता है।
- यह कोड-गोल्फ , सबसे छोटी बाइट गिनती जीत है।
यहाँ कुछ छोटे प्रोग्राम हैं जो आपके सबमिशन का परीक्षण करते हैं। इससे पहले कि यह अपेक्षित परिणाम है तीर कोड है,:
!
->255
!>>
->63
!<@
->239
!nop!&6*!
->255
का आनंद लें!
! -> 255
कि हम यहाँ प्रति बाइट 8 बिट का उपयोग कर रहे हैं? प्रश्न स्पष्ट नहीं है।