Dla fanów gry Nandgame: wypróbuj DPD również dziesiętnie w bramkach logicznych !
tło
Gęsto upakowane miejsca dziesiętne (DPD) to sposób na skuteczne przechowywanie cyfr dziesiętnych w formacie binarnym. Przechowuje trzy cyfry dziesiętne (od 000 do 999) w 10 bitach, co jest znacznie wydajniejsze niż naiwny BCD (który przechowuje jedną cyfrę w 4 bitach).
Notacje
- Małe litery
a
toi
są bity, które są kopiowane do reprezentacji dziesiętnej. 0
i1
są dokładnymi bitami we wzorcach bitów wejściowych lub wyjściowych.x
bity są ignorowane podczas konwersji.
Tabela konwersji
Poniżej znajduje się tabela konwersji z 10 bitów DPD na trzy cyfry dziesiętne. Każda cyfra dziesiętna jest reprezentowana jako 4-bitowy układ binarny (BCD). Obie strony są pisane od lewej do prawej, od najbardziej znaczącej cyfry do najmniejszej.
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)
Zadanie
Konwertuj 10 bitów DPD na 3 cyfry dziesiętne.
Przypadki testowe
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
Wkład
Domyślnym formatem wejściowym jest lista 10 bitów. Bity powinny być zgodne z dokładną kolejnością powyżej lub odwrotnie. Zamiast tego możesz użyć równoważnego ciągu lub liczby całkowitej. W przeciwieństwie do innych moich wyzwań, zmiana kolejności lub użycie struktur zagnieżdżonych jest niedozwolone .
Dla danych wejściowych [1, 1, 0, 0, 0, 1, 0, 1, 0, 0]
dozwolone są następujące formaty:
- Lista bitów:
[1, 1, 0, 0, 0, 1, 0, 1, 0, 0]
- Strunowy:
"1100010100"
- Binarna liczba całkowita:
788
lub0b1100010100
- Liczba dziesiętna:
1100010100
- Odwrócone:
[0, 0, 1, 0, 1, 0, 0, 0, 1, 1]
i odwrócone w dowolnych innych formatach powyżej
Następujące formaty NIE są dozwolone:
- Dowolna zmiana kolejności bitów:
[0, 0, 0, 0, 0, 1, 1, 1, 0, 1]
- Struktury zagnieżdżone:
[[1, 1, 0], [0, 0, 1], [0, 1, 0, 0]]
lub[0b110, 0b001, 0b0100]
Wydajność
Domyślny format wyjściowy to lista 3 cyfr dziesiętnych. Każda cyfra powinna być reprezentowana od 0 do 9, albo liczbą całkowitą, albo znakiem. Tak jak na wejściu, możesz wybrać reprezentację ciągu lub liczby całkowitej. Jeśli wybierzesz reprezentację liczb całkowitych, zera wiodące można pominąć.
Kryterium punktacji i wygranej
Obowiązują standardowe zasady gry w golfa . Wygrywa najkrótszy program lub funkcja w bajtach dla każdego języka.