Podczas gry w golfa będziesz potrzebować zrzutu heksadecymalnego kodu, zwykle dlatego, że używałeś znaków niedrukowalnych. Dlaczego więc nie stworzyć programu, który sam Hex Zrzuca?
Wyzwanie
Wyzwanie polega na tym, aby bez danych wejściowych wyprowadzić zrzut heksadecymalny kodu źródłowego w następującym formacie:
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Lub, na przykład, jeśli twój program był print("SomeString"):rep(123)
0000: 70 72 69 6e 74 28 5c 22 53 6f 6d 65 53 74 72 69 print("SomeStrin
0010: 6e 67 5c 22 29 3a 72 65 70 28 31 32 33 29 g"):rep(123)
Specyfika
Zrzut heksadecymalny jest podzielony na wiersze po trzy części, z których każdy reprezentuje 16 bajtów kodu źródłowego.
Pierwsza część to adres pamięci. Określa, gdzie zaczyna się bieżący wiersz w kodzie. Zapisany jako 2-bajtowa liczba szesnastkowa, po której następuje :
spacja.
Drugi to sam Hex Dump. Jest to 16 bajtów kodu źródłowego, zapisanych w formie szesnastkowej, oddzielonych spacjami. Powinna to być dokładna reprezentacja bajtów z wykorzystaniem kodowania twojego kodu.
Wreszcie, po dwóch odstępach, sam kod. Jest to po prostu 16 znaków kodu, a znaki niedrukowalne zapisane jako.
Notatki
- To jest Quine wyzwanie, więc standardowe Zasady Quine zastosowania.
- Jest to również wyzwanie dla golfa , dlatego obowiązują standardowe luki .
- Jak pokazano w drugim przykładzie, nie zapisuj bajtów po EOF, zamiast tego użyj białych znaków.
- Końcowe białe znaki są w porządku.
- Wbudowane w zrzut heksowy, jeśli zdarzy się, że masz taki w tym konkretnym formacie, nie są zbanowane, ale są rozczarowane.
- Znaki niedrukowalne odnoszą się do każdego znaku, który reprezentowany jako pojedynczy bajt, nie może być reprezentowany jako pojedynczy glif z odstępami. UTF-8, oznacza
0-31
,128-255
. W przypadku strony kodowej Jelly , ponieważ wszystkie znaki mogą być reprezentowane jako pojedynczy glif, odstępy między znakami nie występują.
xxd
to?