สำหรับแฟน ๆ เกม nandgame: โปรดลองDPD เป็นทศนิยมในประตูตรรกะด้วย!
พื้นหลัง
ทศนิยมที่อัดแน่น (DPD)คือวิธีในการจัดเก็บทศนิยมอย่างมีประสิทธิภาพในไบนารี มันเก็บทศนิยมสามหลัก (000 ถึง 999) ใน 10 บิตซึ่งมีประสิทธิภาพมากขึ้นกว่าไร้เดียงสา BCD (ซึ่งเก็บหนึ่งหลักใน 4 บิต)
ข้อความ
- ตัวอักษรตัวพิมพ์เล็ก
aจะiมีบิตที่ถูกคัดลอกไปเป็นตัวแทนทศนิยม 0และ1เป็นบิตที่แน่นอนในรูปแบบบิตอินพุตหรือเอาต์พุตxบิตจะถูกละเว้นในการแปลง
ตารางการแปลง
ต่อไปนี้เป็นตารางการแปลงจาก 10 บิตของ DPD เป็นทศนิยมสามหลัก ตัวเลขทศนิยมแต่ละหลักแสดงเป็นไบนารี่ 4 บิต (BCD) ทั้งสองข้างถูกเขียนจากซ้ายไปขวาจากหลักที่สำคัญที่สุดไปถึงอย่างน้อยที่สุด
Bits                 =>  Decimal         (Digit range)
a b c d e f 0 g h i  =>  0abc 0def 0ghi  (0-7) (0-7) (0-7)
a b c d e f 1 0 0 i  =>  0abc 0def 100i  (0–7) (0–7) (8–9)
a b c g h f 1 0 1 i  =>  0abc 100f 0ghi  (0–7) (8–9) (0–7)
g h c d e f 1 1 0 i  =>  100c 0def 0ghi  (8–9) (0–7) (0–7)
g h c 0 0 f 1 1 1 i  =>  100c 100f 0ghi  (8–9) (8–9) (0–7)
d e c 0 1 f 1 1 1 i  =>  100c 0def 100i  (8–9) (0–7) (8–9)
a b c 1 0 f 1 1 1 i  =>  0abc 100f 100i  (0–7) (8–9) (8–9)
x x c 1 1 f 1 1 1 i  =>  100c 100f 100i  (8–9) (8–9) (8–9)
งาน
แปลง DPD 10 บิตเป็นทศนิยม 3 หลัก
กรณีทดสอบ
DPD           Decimal
0000000101    005
0001100011    063
0001111001    079
0000011010    090
0001011110    098
1010111010    592
0011001101    941
1100111111    879
1110001110    986
0011111111    999
1111111111    999  * Output is same regardless of the `x` bits
อินพุต
รูปแบบอินพุตเริ่มต้นคือรายการ 10 บิต บิตควรเป็นไปตามลำดับที่ถูกต้องด้านบนหรือด้านหลังของมัน คุณอาจเลือกใช้สตริงหรือจำนวนเต็มแทนก็ได้ ซึ่งแตกต่างจากความท้าทายอื่น ๆ ของฉันสั่งใหม่หรือการใช้โครงสร้างที่ซ้อนกันไม่ได้รับอนุญาต
สำหรับอินพุต[1, 1, 0, 0, 0, 1, 0, 1, 0, 0]จะอนุญาตให้ใช้รูปแบบต่อไปนี้:
- รายการบิต: 
[1, 1, 0, 0, 0, 1, 0, 1, 0, 0] - สตริง: 
"1100010100" - จำนวนเต็มแบบไบนารี: 
788หรือ0b1100010100 - จำนวนเต็มทศนิยม: 
1100010100 - ย้อนกลับ: 
[0, 0, 1, 0, 1, 0, 0, 0, 1, 1]และย้อนกลับในรูปแบบอื่น ๆ ด้านบน 
ไม่อนุญาตรูปแบบต่อไปนี้:
- การเรียงลำดับใหม่โดยพลการของบิต: 
[0, 0, 0, 0, 0, 1, 1, 1, 0, 1] - โครงสร้างแบบซ้อน: 
[[1, 1, 0], [0, 0, 1], [0, 1, 0, 0]]หรือ[0b110, 0b001, 0b0100] 
เอาท์พุต
รูปแบบผลลัพธ์เริ่มต้นคือรายการเลขทศนิยม 3 ตัว แต่ละหลักควรแสดงเป็น 0 ถึง 9 ไม่ว่าจะเป็นจำนวนเต็มหรืออักขระ ในอินพุตคุณสามารถเลือกการแทนสตริงหรือจำนวนเต็ม หากคุณเลือกการแสดงจำนวนเต็มศูนย์จะไม่สามารถนำศูนย์
เกณฑ์การให้คะแนนและการชนะ
ใช้กฎมาตรฐานของกอล์ฟ โปรแกรมหรือฟังก์ชันที่สั้นที่สุดในหน่วยไบต์สำหรับแต่ละภาษาที่ชนะ