สำหรับแฟน ๆ เกม 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 ไม่ว่าจะเป็นจำนวนเต็มหรืออักขระ ในอินพุตคุณสามารถเลือกการแทนสตริงหรือจำนวนเต็ม หากคุณเลือกการแสดงจำนวนเต็มศูนย์จะไม่สามารถนำศูนย์
เกณฑ์การให้คะแนนและการชนะ
ใช้กฎมาตรฐานของกอล์ฟ โปรแกรมหรือฟังก์ชันที่สั้นที่สุดในหน่วยไบต์สำหรับแต่ละภาษาที่ชนะ