ในการท้าทายนี้คุณจะต้องเขียนล่ามเป็นภาษาง่ายๆที่ฉันได้ทำขึ้น ภาษานี้ใช้ตัวสะสม A ตัวเดียวซึ่งมีความยาวหนึ่งไบต์ ที่จุดเริ่มต้นของโปรแกรม A = 0 นี่คือคำแนะนำภาษา:
!
: ผกผัน
คำสั่งนี้จะแปลงค่าตัวสะสมเล็กน้อย ทุกศูนย์กลายเป็นหนึ่งและทุก ๆ กลายเป็นศูนย์ ! ง่าย
>
: เลื่อนไปทางขวา
คำสั่งนี้เลื่อนทุกบิตในที่เดียวไปทางขวา บิตซ้ายสุดจะกลายเป็นศูนย์และบิตขวาสุดจะถูกทิ้ง
<
: เลื่อนไปทางซ้าย
คำสั่งนี้เลื่อนทุกบิตในที่เดียวทางซ้าย บิตขวาสุดจะกลายเป็นศูนย์และบิตซ้ายสุดจะถูกทิ้ง
@
: สลับ Nybbles
คำสั่งนี้ทำการแลกเปลี่ยนสี่บิตบนสุดของ A ด้วยสี่บิตด้านล่าง ตัวอย่างเช่นถ้า A 01101010
และคุณดำเนินการ@
A จะเป็น10100110
:
____________________
| |
0110 1010 1010 0110
|_______|
นั่นคือคำแนะนำทั้งหมด! ง่ายใช่มั้ย
กฎระเบียบ
- โปรแกรมของคุณต้องยอมรับอินพุตหนึ่งครั้งในตอนเริ่มต้น นี่จะเป็นบรรทัดของรหัส นี่ไม่ใช่ล่ามแบบโต้ตอบ! คุณสามารถยอมรับอินพุตได้เพียงครั้งเดียวและไม่ต้องวนกลับไปที่จุดเริ่มต้นอีกครั้งเมื่อบรรทัดนั้นถูกดำเนินการ
- โปรแกรมของคุณต้องประเมินอินพุตดังกล่าว อักขระทุกตัวที่ไม่ได้กล่าวถึงข้างต้นจะถูกละเว้น
- โปรแกรมของคุณควรพิมพ์ค่าสุดท้ายของแอคคูมูเลเตอร์เป็นทศนิยม
- ใช้กฎมาตรฐานสำหรับภาษาการเขียนโปรแกรมที่ถูกต้อง
- ช่องโหว่มาตรฐานไม่ได้รับอนุญาต
- นี่คือโค้ดกอล์ฟการนับจำนวนไบต์ที่เล็กที่สุดชนะ
ต่อไปนี้เป็นโปรแกรมขนาดเล็กเพื่อทดสอบการส่งของคุณ ก่อนที่ลูกศรจะเป็นรหัสหลังจากได้ผลลัพธ์ที่ต้องการ:
!
->255
!>>
->63
!<@
->239
!nop!&6*!
->255
สนุก!
! -> 255
ที่เราจะใช้ 8 บิตต่อไบต์ที่นี่ คำถามไม่ชัดเจน