7 , 23 karakter, 9 bayt
54340045141332401057403
Çevrimiçi deneyin!
Bu tamamen rakamlardan oluşan bir dilde oldukça zor bir iştir, ama ben başardım…
Bu 7 kodlamada sadece 9 bayttır. (Açıkçası, 8, bayttır (23 × ⅜ - ¼ çünkü son iki sondaki 1 bit atlanabilir), ancak ilk kez, PPCG'nin tüm baytları toplama gereksinimi aslında bir avantajdır çünkü Ekstra son 1 bit gerekli ve bu nedenle soru tarafından yasaklanmadı.) Geri dönüşümlü bir altıgen döküm:
00000000: b1c0 2530 b6a0 22f8 1f ..%0.."..
Bu programı 7'de yazmanın ana zorluğu, 10 baytın altına golf oynamaktı (kullanmadan 7 yazmak 0
veya 1
oldukça zor.) Bu standart "Merhaba dünya" programı ile aynı yapıyı kullanıyor:
5434004514133240105 7 403
5434004514133240105 komutları 0-5 veri alanlarına değişmezleri ekle
7 yeni bir veri alanı bölümü başlat
403 veri alanına başka bir hazır bilgi eklendi
{implicit: son bölümü komut olarak değerlendirin}
4 takas, 1. ve 2. bölümleri 6 arasında boş bir bölüm ile
1. bölüm 3 çıktısını oluşturacak komutları yeniden yapılandırır
(+ umurumuzda olmayan diğer efektler)
Başka bir deyişle, veri alanının iki bölümünü oluşturarak başlarız; Her biri bir dizi emir iterek iki hazır bilgimiz var. İkinci bölüm (yığın tarzı itilirler, bu nedenle ilk basma = son pop) komutların oldukça rasgele bir dizisidir ancak komut dizisi kullanılarak itilir 5434004514133240105
(bu nedenle veri dizisini oluşturur 5434664574733246765
; metin içinde 7'yi tartışırken normalde normal yazı tipini kullanırım) değişmezleri iten bir komut için ve buna karşılık gelen değişmez için kalın. İlk bölüm komut dizisi kullanılarak 403
üretiliyor 463
. Daha sonra ilk bölüm programa geri kopyalanır (örtük bir davranış 7).
463
Şimdi (kalın olmayan) sadece değişmezleri itmek komutları yerine, hemen bir şeyler yapmak (kalın) komutları oluşur. 4
"string literal" kelimesini ilk bölüme getirmek için bölümleri yeniden düzenler. Ardından 0
, 7'nin en çok bilinen işlemi yapar: veri alanının bir bölümünü almak ve onu yaratması en muhtemel komut sırasını yeniden oluşturmak. Orijinal komut dizisi tüm idi durumda 0
- 5
(o komutlar tamamen verileri itmek ve böylece yaptıklarını bariz kanıt bırakın, şaşırtıcı olmayan) ve bu yüzden orijinal diziyi olsun, bu% 100 doğru olduğunu 5434004514133240105
geri. Sonunda, 3
yazdırır.
Bu yüzden burada bakılacak kalan şey dizginin kodlamasıdır. Bunun kendi etki alanına özgü dili var:
5434004514133240105
5 change encoding: 6 bits per character
43 select character set: digits and common symbols
40 '9'
04 space
51 select character set: uppercase letters
4133240105 'B' 'Y' 'T' 'E' 'S'
("Rakamlar ve genel semboller" karakter setinde "karakter karakteri seç: küçük harf" yoktur - önce farklı bir karakter kümesinden geçmelisiniz - bu nedenle etkili olanın altına sığacak kadar kısa bir golf yapmak için büyük harf kullanmam gerekiyordu. -bayt sınırı.)