Kod golf yaparken, genellikle yazdırılamayan karakterler kullandığınız için kodunuzun Hex Dökümü'ne ihtiyaç duyduğunuz zamanlar olacaktır. Öyleyse, neden Hex Dumps'ın kendisi olan bir program yapmıyorsunuz?
Meydan okuma
Bu sorun, herhangi bir giriş yapılmadığında, kaynak kodunuzun Hex Dökümü'nü aşağıdaki formatta çıktılamaktır:
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 ................
Veya, örneğin, programınız 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)
Ayrıntılı Bilgiler
Onaltılık döküm, her biri kaynak kodunuzun 16 baytını temsil eden üç bölümden oluşan satırlara bölünür.
İlk bölüm bellek adresidir. Geçerli satırın kodunuzda nerede başladığını belirtir. 2 Bayt Onaltılık sayı olarak yazılır, ardından a :
, sonra boşluk bırakılır.
İkincisi, Hex Dump'ın kendisidir. Bu, Kaynak Kodunuzun boşluklarla ayrılmış Onaltılık biçimde yazılmış 16 bayttır. Bu, kodunuzun kodlamasını kullanarak doğru bir bayt temsili olmalıdır.
Son olarak, iki boşluktan sonra, kodun kendisidir. Bu, kodunuzun yalnızca 16 karakteridir ve Yazdırılamayan karakterler.
notlar
- Bu ise bir quine yüzden, meydan Standart Quine Kuralları geçerlidir.
- Bu da kod-golf mücadelesi, bu yüzden Standart Loopholes geçerlidir.
- İkinci örnekte gösterildiği gibi, EOF'dan sonra bayt yazmayın, bunun yerine boşluk kullanın.
- Sondaki boşluk gayet iyi.
- Bu özel formatta bir tane varsa, Hex dökümünde bulunanlar yasaklanmaz, ancak kaşlarını çatar.
- Yazdırılamayan karakterler, yalnızca tek bir bayt olarak temsil edilen ve tek aralıklı glif olarak gösterilemeyen herhangi bir karakteri belirtir. UTF-8, bu yollarla için
0-31
,128-255
. İçin Jelly CODEPAGE tüm karakterler tek aralıklı glyph olarak temsil edilebilir gibi, hiçbir Sigara yazdırılabilir karakterler vardır.
xxd
onu okuyamazsınız ?