Ternyata ada beberapa alien jauh yang tahu bahasa Inggris (dan secara kebetulan memiliki standar pada arsitektur komputer 8-bit) . Namun mereka belum pernah mendengar ASCII, atau bahkan urutan alfabet.
Diyakini bahwa alien-alien ini mengambil informasi dari Bumi. Namun mereka melakukannya dengan peralatan digital yang membaca informasi yang tidak berarti ketika tidak ada transmisi yang dikirim ... sehingga sinyal harus dikandung dengan cara untuk menonjol dari kebisingan di sekitarnya.
Sebuah standar baru telah dibuat, dimodelkan setelah penggunaan panjang sinyal semiprime dari Pesan Arecibo:
Pengkodean Semiotik Universal untuk Pertukaran Informasi (USCII)
(Lihat: http://uscii.hostilefork.com )
Dalam USCII, setiap kode diturunkan dari bitmap yang mewakili karakter, yang memiliki lebar prima dan tinggi prima. Misalnya, representasi 5x7 dari huruf A:
01110
10001
10001
10001
11111
10001
10001
Itu menghasilkan 35 bit. Namun untuk membuat bahkan pesan satu karakter menonjol dari kebisingan dan terlihat koheren, string tertanam dalam format wadah yang membantu memperkuat faktor utama. Wadah telah dipilih untuk memudahkan memanipulasi string pada arsitektur yang beroperasi pada kelipatan 8 bit.
Dengan wadahnya, "A" di atas akan terlihat seperti:
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
0111010001100011000111111100011000100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111
Karakter pesan diawali dengan lima bitmap 5x7 solid, dan tujuh bitmap 5x7 solid ditambahkan di bagian akhir. (The "meter" .) Kemudian masing-masing memiliki lima 0 bit ditempelkan di ujung untuk membuat bahkan 40 bit.
Akhirnya ada 7 semua-nol berjalan 40-bit ditambahkan ke awal, dan 5 semua-satu berjalan 40-bit ditambahkan ke akhir. ( "Diam" .)
Misi Anda
Anda harus menulis encoder. Input adalah string ASCII konvensional yang diketik dari keyboard. Bitmap yang akan Anda gunakan berasal dari font CPU PIC 5x7 .
(Catatan: Cukup mudah untuk mengekstrak font dari halaman untuk semua pegolf kode berbakat di sini, tetapi jika Anda ingin semua byte tersebut bersama-sama ada di sini .)
Output harus berupa string yang dicetak dalam heksadesimal.
Contohnya
Masukan :
ABCDEFG
Keluaran :
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074631FC620F463E8C7C074610845C0E4A318CB80FC21E843E0FC21E84200746178C5E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Masukan :
Dear aliens: Please get me off of this planet!!!
Keluaran :
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0E4A318CB80001D1FC1E0001C17C5E0002D9842000000000000001C17C5E061084211C00100421080001D1FC1E0002D98C620001F0707C003180630000000000000F463E8420061084211C0001D1FC1E0001C17C5E0001F0707C0001D1FC1E00000000000001F1787C0001D1FC1E0213E421440000000000000375AD620001D1FC1E00000000000001D18C5C01148E210801148E210800000000000001D18C5C01148E210800000000000213E4214408421E8C6200100421080001F0707C00000000000003D1F420061084211C0001C17C5E0002D98C620001D1FC1E0213E421440210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Klarifikasi
- Tidak perlu menangani karakter yang tidak dapat dicetak untuk tugas ini (meskipun umpan balik tentang ide-ide untuk apa yang terlihat seperti itu disambut)
Ketentuan Kemenangan
0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074610845C0001D18C5C00842F8C5E0001D1FC1E00000000000746178C5E0001D18C5C061084211C01148E21080210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Jawaban:
Python 2,
671669663 bytePHP dengan zlib,
738716715 bytePertama, PHP Anda perlu dikonfigurasi dengan
--with-zlib
. Dan jalankan skrip ini dari baris perintah, sepertiphp 26972.php
. Program ini mengambil input dari STDIN.(Jika
short_open_tag=On
, saya dapat menyimpan 3 byte lebih banyak.)Tidak disatukan
sumber
C
Ini benar-benar mencetak hex yang dapat dibaca manusia (vs binary untuk readablity). Semuanya direpresentasikan dalam panjang yang tidak ditandai dan hanya 9-10 digit hex yang digunakan karena (tergantung apakah Anda memasukkan 00000 padding) format 6x5 yang tidak menguntungkan (font 8x4 terlalu mudah)
pesta
sumber
0x##number##ULL
(lihat versi bash untuk alternatif char), tetapi ideone.com berpikir itu adalah pemanggilan fungsi jadi saya mem-nix-nya (gcc baik-baik saja) ... Saya bisa menghapus (void) dari main juga, tetapi beberapa hal sepertinya salah.PHP, 874 byte
Anda perlu menjalankan skrip ini dari baris perintah (
php uscii.php
) karena ia mengambil input dari stdin.Tidak Disatukan:
sumber
JavaScript ES6 (838 Bytes)
Tidak hancur :
sumber