अंग्रेजी पढ़ने और लिखने वाले एलियंस के लिए एक स्ट्रिंग एनकोड करें, लेकिन ASCII नहीं जानते


12

पता चला कि कुछ दूर के एलियंस हैं जो अंग्रेजी जानते हैं (और संयोग से 8-बिट कंप्यूटर आर्किटेक्चर पर मानकीकृत हैं) । फिर भी उन्होंने ASCII के बारे में कभी नहीं सुना है, न ही वर्णमाला के क्रम में।

ऐसा माना जाता है कि ये एलियंस पृथ्वी से जानकारी उठा रहे हैं। फिर भी वे डिजिटल उपकरणों के साथ ऐसा कर रहे हैं, जब कोई ट्रांसमिशन नहीं भेजा जा रहा है तो अर्थहीन जानकारी पढ़ता है ... इस प्रकार सिग्नल को आसपास के शोर से बाहर खड़े होने के तरीके में निहित होना चाहिए।

एक नया मानक बनाया गया है, जो सेमीकंडाइम सिग्नल की लंबाई के Arecibo संदेश के उपयोग के बाद बनाया गया है:

सूचना के आदान-प्रदान के लिए यूनिवर्सल सेमीकोटिक कोडिंग (USCII)

(देखें: http://uscii.hostilefork.com )

USCII में, प्रत्येक कोड चरित्र का प्रतिनिधित्व करने वाले बिटमैप से प्राप्त होता है, जिसमें एक प्रमुख चौड़ाई और एक प्रमुख ऊंचाई होती है। उदाहरण के लिए, A अक्षर का यह 5x7 प्रतिनिधित्व:

01110
10001
10001
10001
11111
10001
10001

जो 35 बिट्स पैदा करता है। फिर भी एकल-पात्र संदेश को शोर से अलग करने और सुसंगत दिखने के लिए, तार एक कंटेनर प्रारूप में एम्बेडेड होते हैं जो प्रमुख कारकों को सुदृढ़ करने में मदद करता है। कंटेनर को 8 बिट के गुणकों पर काम करने वाले आर्किटेक्चर पर तारों को हेरफेर करना आसान बनाने के लिए चुना गया है।

इसके कंटेनर के साथ, ऊपर "A" दिखेगा:

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

संदेश के पात्र पहले पाँच ठोस 5x7 बिटमैप्स के साथ उपसर्ग करते हैं, और सात ठोस 5x7 बिटमैप्स अंत में जोड़े जाते हैं। ( "मीटर" ।) फिर इनमें से प्रत्येक में पाँच बिट्स हैं जो अंत में एक 40 बिट्स बनाने के लिए समाप्त हो गए हैं।

अंत में शुरुआत में 7 ऑल-जीरो 40-बिट रन जोड़े गए, और अंत में 5 ऑल-वन 40-बिट रन जोड़े गए। ( "मौन" )

आपका मिशन

आपको एक एनकोडर लिखना है। इनपुट कीबोर्ड से टाइप किया गया एक पारंपरिक ASCII स्ट्रिंग है। आपके द्वारा उपयोग किए जाने वाले बिटमैप 5x7 PIC CPU फ़ॉन्ट से हैं

(ध्यान दें: यहां सभी प्रतिभाशाली कोड गोल्फरों के लिए पृष्ठ से फ़ॉन्ट निकालना काफी आसान है, लेकिन यदि आप उन बाइट्स को एक साथ यहां चाहते हैं तो वे हैं ।)

आउटपुट हेक्साडेसिमल में एक मुद्रित स्ट्रिंग होना चाहिए।

उदाहरण

इनपुट :

ABCDEFG

आउटपुट :

0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074631FC620F463E8C7C074610845C0E4A318CB80FC21E843E0FC21E84200746178C5E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

इनपुट :

Dear aliens: Please get me off of this planet!!!

आउटपुट :

0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0E4A318CB80001D1FC1E0001C17C5E0002D9842000000000000001C17C5E061084211C00100421080001D1FC1E0002D98C620001F0707C003180630000000000000F463E8420061084211C0001D1FC1E0001C17C5E0001F0707C0001D1FC1E00000000000001F1787C0001D1FC1E0213E421440000000000000375AD620001D1FC1E00000000000001D18C5C01148E210801148E210800000000000001D18C5C01148E210800000000000213E4214408421E8C6200100421080001F0707C00000000000003D1F420061084211C0001C17C5E0002D98C620001D1FC1E0213E421440210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

स्पष्टीकरण

जीतने की स्थिति

0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074610845C0001D18C5C00842F8C5E0001D1FC1E00000000000746178C5E0001D18C5C061084211C01148E21080210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF


मेरी राय में, एलियंस शायद सोचते हैं कि हम उन्हें वह सामान भेजने के लिए पागल हैं।
काइल कानोस

7
@KyleKanos यदि एलियंस स्मार्ट हैं, तो वे सोचेंगे कि यह अच्छा है। यह निष्कर्ष कि मानवता पागल है, किसी के शीघ्र बाद होगा, फिर प्रारूप का उपयोग करके उन्हें वैश्विक समाचार आउटलेट से जानकारी प्रसारित करेगा।
HostileFork का कहना है कि SE पर भरोसा मत करो

अंतिम पंक्ति स्वरूपित नहीं है, क्या आप इसे अन्य इनपुट और आउटपुट लाइनों की तरह प्रारूपित कर सकते हैं?
अल

@ n.1 क्या यह आपके ब्राउज़र में ठीक से प्रदर्शित नहीं हो रहा है? यह खान में ठीक लग रहा है। तकनीकी समस्या होने पर इसे बदलने में खुशी होती है, लेकिन जैसा कि यह जीतने की स्थिति का वर्णन करता है, यह तकनीकी रूप से एक "उपयोग" है और उपयोग-उल्लेख भेद में "उल्लेख" नहीं है , इसलिए मैंने वास्तव में इसे उद्देश्य पर शरीर की पाठ शैली में लिया था। :-)
HostileFork का कहना है कि SE

@Dr। रेम्बु: डेस्कटॉप पर मेरे ब्राउज़र में यह ठीक है, लेकिन एंड्रॉइड ऐप के साथ यह सवाल बहुत व्यापक है: meta.stackexchange.com/q/231512/237701
AL

जवाबों:


3

पायथन 2, 671 669 663 बाइट्स

D=str.decode
d=D(D("eJxNUmsSHiEIuxIgvn76sXr/IzVB26kzqyxCCBGRt0xlOM5RbXp6qv32Omu6lT22nTGiOVe05muMFXM11ZuuynwV52f8E7W11+SdzGMvTl6GHvm3ig6RRBbp3nqNqGEFeACK7m5YZYPAMMGV6qyk4ydKKD3FTPeAcQZhUAw4lh4aR8YcWaaVV480lDTJF64thyT4T+8tCjVofOtLnKInAAYDyJ0e9lxj+wJk/MYJ0nBQvYaRhnbQQEIrB5t1fX2VwdMnZF1zLF/Gf2H62PtXGYwypU5msXo2mNUvclE+QXqY3sNkg3GcKReKRTPrGnizNNCOw+tenSWaLQZf6VC926UYVw7I0y/eDEOo/LfKvvLdEQjt7NTzLXrkI2MmNrMPRYDng4a6VR0ThTKMgUA9XlYzTIsk+XtCH+y2mk1rf6VD4V7Xh2Cxb2YWkdkprlDCTR6yv5jnQSuQScEb0CBu5WXZ1ScN6gMDvWa73HNoy845VMg7wLBlA9wwhAMTiNn6ravFH00dtSc=","base64"),"zip")
i=raw_input()
m="F"*8+"E0"
o="0"*70+m*5
for c in i:x=ord(c)*9-288;o+=d[x:x+9]+"0"
print o+m*7+"F"*50

Zlib के साथ PHP, 738 716 715 बाइट्स

<?php $d=gzinflate(base64_decode("TVJrEh4hCLsSIL5++rF6/yM1QdupM6ssQggRkbdMZTjOUW16eqr99jprupU9tp0xojlXtOZrjBVzNdWbrsp8Fedn/BO1tdfkncxjL05ehh75t4oOkUQW6d56jahhBXgAiu5uWGWDwDDBleqspOMnSig9xUz3gHEGYVAMOJYeGkfGHFmmlVePNJQ0yReuLYck+E/vLQo1aHzrS5yiJwAGA8idHvZcY/sCZPzGCdJwUL2GkYZ20EBCKwebdX19lcHTJ2Rdcyxfxn9h+tj7VxmMMqVOZrF6NpjVL3JRPkF6mN7DZINxnCkXikUz6xp4szTQjsPrXp0lmi0GX+lQvdulGFcOyNMv3gxDqPy3yr7y3REI7ezU8y165CNjJjazD0WA54OGulUdE4UyjIFAPV5WM0yLJPl7Qh/stppNa3+lQ+Fe14dgsW9mFpHZKa5Qwk0esr+Y50ErkEnBG9AgbuVl2dUnDeoDA71mu9xzaMvOOVTIO8CwZQPcMIQDE4jZ+q2rxR8="));$i=trim(fgets(STDIN));$f="str_repeat";echo $f(0,70).$f($m="FFFFFFFFE0",5);foreach(str_split($i)as$c)echo substr($d,ord($c)*9-288,9)."0";echo $f($m,7).$f("F",50);

सबसे पहले, अपने PHP के साथ कॉन्फ़िगर करने की आवश्यकता है --with-zlib। और इस स्क्रिप्ट को कमांड लाइन से चलाएं, जैसे php 26972.php। यह प्रोग्राम STDIN से इनपुट लेता है।

(यदि short_open_tag=On, मैं 3 और बाइट्स बचा सकता हूं।)

Ungolfed

<?php
$data = gzinflate(base64_decode("TVJrEh4hCLsSIL5++rF6/yM1QdupM6ssQggRkbdMZTjOUW16eqr99jprupU9tp0xojlXtOZrjBVzNdWbrsp8Fedn/BO1tdfkncxjL05ehh75t4oOkUQW6d56jahhBXgAiu5uWGWDwDDBleqspOMnSig9xUz3gHEGYVAMOJYeGkfGHFmmlVePNJQ0yReuLYck+E/vLQo1aHzrS5yiJwAGA8idHvZcY/sCZPzGCdJwUL2GkYZ20EBCKwebdX19lcHTJ2Rdcyxfxn9h+tj7VxmMMqVOZrF6NpjVL3JRPkF6mN7DZINxnCkXikUz6xp4szTQjsPrXp0lmi0GX+lQvdulGFcOyNMv3gxDqPy3yr7y3REI7ezU8y165CNjJjazD0WA54OGulUdE4UyjIFAPV5WM0yLJPl7Qh/stppNa3+lQ+Fe14dgsW9mFpHZKa5Qwk0esr+Y50ErkEnBG9AgbuVl2dUnDeoDA71mu9xzaMvOOVTIO8CwZQPcMIQDE4jZ+q2rxR8="));
$input = trim(fgets(STDIN));
$f = "str_repeat";

echo $f(0, 70).$f($m = "FFFFFFFFE0", 5);
foreach(str_split($input) as $c)
    echo substr($data, ord($c) * 9 - 288, 9)."0";
echo $f($m, 7).$f("F", 50);

संपीड़ित डेटा में केवल 9 हेक्स अंकों का उपयोग करने के विचार के लिए +1।
user2846289

716 है # अब तक हरा करने के लिए ... हालांकि मैं कल्पना करता हूँ कि यह कम में किया जा सकता है! मैं इसे थोड़ा बढ़ा दूंगा, लेकिन अगर कोई गिनती नहीं करता है, तो मैं इसे आपको हवा दूंगा ... कम से कम आपके पास पायथन संस्करण है और पीएचपी नहीं है। :-)
HostileFork का कहना है कि SE

सभी सही, 663 और PHP में नहीं - और भी बेहतर। :-) इनाम आपका है!
HostileFork का कहना है कि एसई

2

सी

यह वास्तव में मानव पठनीय हेक्स प्रिंट करता है (बनाम पठनीयता के लिए द्विआधारी)। सब कुछ अहस्ताक्षरित लंबे समय में दर्शाया गया है और केवल 9-10 हेक्स अंकों का उपयोग किया जाता है (इस पर निर्भर करता है कि क्या आप 00000 गद्दी को शामिल करते हैं) दुर्भाग्यपूर्ण 6x5 प्रारूप (एक 8x4 फ़ॉन्ट सिर्फ बहुत आसान होगा)

#include <stdio.h>
#define u unsigned long long
void p(int n, u x){while(n--) printf("%09llX",x);}
int main(void){
char *s="ABCDEFG";
u a[128]={0xAAAAAAAAAULL,0xADEB7ADEAULL,0xDFF7FDFF6ULL,0xDEF7BDFF6ULL,0xFFFFFFCE6ULL,0xFF41DB82EULL,0xFD7FF747EULL,0xDC63107F6ULL,0xFEEE0BEFEULL,0x0003D0800ULL,0xE1084FB88ULL,0x21084201CULL,0xFB880FB88ULL,0x084ADFB08ULL,0x25F7BDF78ULL,0xE777BDDC8ULL,0xFFC8E27FEULL,0xFDE719DFEULL,0xDED4A73A2ULL,0xFD6B5AD7EULL,0xFC6318C7EULL,0xFD7FF8BBEULL,0xFFFFFFABEULL,0xF81CA703EULL,0x881445022ULL,0xFC58A347EULL,0x8BBDDDFF6ULL,0x1995E73A2ULL,0xAD6B5AD6AULL,0xDEF7BDEF6ULL,0xF7B5204F6ULL,0xFFFFF9EEEULL,0x000000000ULL,0x210840008ULL,0x529400000ULL,0x52BEAFA94ULL,0x23E8E2F88ULL,0xC644444C6ULL,0x64A88AC9AULL,0x611000000ULL,0x111084104ULL,0x410421110ULL,0x012AEA900ULL,0x0109F2100ULL,0x000006110ULL,0x0001F0000ULL,0x000000318ULL,0x004444400ULL,0x74675CC5CULL,0x23084211CULL,0x74422223EULL,0xF88820C5CULL,0x11952F884ULL,0xFC3C10C5CULL,0x3221E8C5CULL,0xF84444210ULL,0x7462E8C5CULL,0x7462F0898ULL,0x031806300ULL,0x031806110ULL,0x111104104ULL,0x003E0F800ULL,0x410411110ULL,0x744222008ULL,0x7442DAD5CULL,0x74631FC62ULL,0xF463E8C7CULL,0x74610845CULL,0xE4A318CB8ULL,0xFC21E843EULL,0xFC21E8420ULL,0x746178C5EULL,0x8C63F8C62ULL,0x71084211CULL,0x388421498ULL,0x8CA98A4A2ULL,0x84210843EULL,0x8EEB58C62ULL,0x8C7359C62ULL,0x746318C5CULL,0xF463E8420ULL,0x74631AC9AULL,0xF463EA4A2ULL,0x7C20E087CULL,0xF90842108ULL,0x8C6318C5CULL,0x8C6318A88ULL,0x8C631AD54ULL,0x8C5445462ULL,0x8C62A2108ULL,0xF8444443EULL,0x72108421CULL,0x000000000ULL,0x70842109CULL,0x22A200000ULL,0x00000003EULL,0x410400000ULL,0x001C17C5EULL,0x8421E8C7CULL,0x001F0841EULL,0x0842F8C5EULL,0x001D1FC1EULL,0x1148E2108ULL,0x001F1787CULL,0x8421E8C62ULL,0x010042108ULL,0x100421498ULL,0x4212A6292ULL,0x61084211CULL,0x00375AD62ULL,0x002D98C62ULL,0x001D18C5CULL,0x003D1F420ULL,0x001F17842ULL,0x002D98420ULL,0x001F0707CULL,0x213E42144ULL,0x002318C5CULL,0x002318A88ULL,0x00231AD54ULL,0x0022A22A2ULL,0x0022A2110ULL,0x003E2223EULL,0x190882106ULL,0x210802108ULL,0xC10822130ULL,0x0BA000000ULL,0xFE2A2AE3EULL};
p(7,0ULL);
p(5,0xFFFFFFFE0ULL);
while(*s)p(1,a[*s++]);
p(7,0xFFFFFFFE0ULL);
p(5,0xFFFFFFFFFULL);
return 0;
}

दे घुमा के

#!/bin/sh 
p(){
i=0
while ([ $i -lt $1 ]) do
printf $2
i=$((i+1))
done
}

t(){
#Given string input $1, go char by char & create "alien" representation 

C='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !"#$%&~)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
A="AAAAAAAAA0ADEB7ADEA0DFF7FDFF60DEF7BDFF60FFFFFFCE60FF41DB82E0FD7FF747E0DC63107F60FEEE0BEFE00003D08000E1084FB88021084201C0FB880FB880084ADFB08025F7BDF780E777BDDC80FFC8E27FE0FDE719DFE0DED4A73A20FD6B5AD7E0FC6318C7E0FD7FF8BBE0FFFFFFABE0F81CA703E08814450220FC58A347E08BBDDDFF601995E73A20AD6B5AD6A0DEF7BDEF60F7B5204F60FFFFF9EEE000000000002108400080529400000052BEAFA94023E8E2F880C644444C6064A88AC9A0611000000011108410404104211100012AEA90000109F2100000000611000001F000000000003180004444400074675CC5C023084211C074422223E0F88820C5C011952F8840FC3C10C5C03221E8C5C0F8444421007462E8C5C07462F08980031806300003180611001111041040003E0F8000410411110074422200807442DAD5C074631FC620F463E8C7C074610845C0E4A318CB80FC21E843E0FC21E84200746178C5E08C63F8C62071084211C038842149808CA98A4A2084210843E08EEB58C6208C7359C620746318C5C0F463E8420074631AC9A0F463EA4A207C20E087C0F9084210808C6318C5C08C6318A8808C631AD5408C544546208C62A21080F8444443E072108421C0000000000070842109C022A200000000000003E04104000000001C17C5E08421E8C7C0001F0841E00842F8C5E0001D1FC1E01148E21080001F1787C08421E8C620010042108010042149804212A6292061084211C000375AD620002D98C620001D18C5C0003D1F4200001F178420002D984200001F0707C0213E421440002318C5C0002318A88000231AD5400022A22A200022A21100003E2223E019088210602108021080C1082213000BA0000000FE2A2AE3E0"

j=0 
p 7 0000000000
p 5 FFFFFFFFE0
while ([ "${j}" -lt "${#1}" ]) do 
   i=${C%${1:$j:1}*}
   i=${#i}
   printf ${A:$(( $i*10 )):10} 
   j=$(($j+1)) 
done 
p 7 FFFFFFFFE0
p 5 FFFFFFFFFF
}
t "Dear aliens: Please get me off of this planet!!!"

@ DrRebmu "फ़ॉन्ट" को एक कार्यशील प्रारूप में लाने की अपेक्षा मुझे अधिक समय लगा। मैंने जल्द ही अपनी दूसरी पोस्ट करने की योजना बनाई थी, लेकिन इसने उम्मीद से ज्यादा रूपांतरण और प्रारूपण किया।
टेक्नोसॉरस

1
कल्पना को पूरा करने के लिए +1! लेकिन गोल्फिंग में बहुत संभावनाएं हैं। जब एन उत्परिवर्तनीय है तो पी दिनचर्या में एक नया काउंटर क्यों पेश करें? जब एक #define उसको काट सकता है, तो वाक्यांश "लंबे समय तक लंबे" दो बार दोहराएं क्यों? क्या हेक्स एनकोडेड टेबल में 0x और ULL का मूल्य दिया जा रहा है, जहां आपको अंकों के हिसाब से केवल 4 बिट्स ही मिल रहे हैं? आदि
HostileFork का कहना है कि एसई

@ DrRebmu ने अतिरिक्त काउंटर (ओवरसाइट) तय किया, और मैंने इसके लिए एक मैक्रो का उपयोग करने की योजना बनाई 0x##number##ULL(चारो विकल्प के लिए bash संस्करण देखें), लेकिन ideone.com ने सोचा कि यह एक फ़ंक्शन कॉल था इसलिए मैंने इसे निक्स्ड कर दिया (gcc) ठीक था ... मैं (शून्य) को मुख्य से भी हटा सकता था, लेकिन कुछ चीजें सिर्फ गलत लगती हैं।
टेक्नोसॉरस

कोड गोल्फ में, केवल "गलत" है अगर यह नहीं चलता है या कल्पना को पूरा नहीं करता है ... "सही" होना कम वर्ण है ! यदि आप अपने C प्रोग्राम में दृष्टिकोण का उपयोग करने जा रहे हैं, तो मैं निश्चित रूप से कहूंगा कि आप अहस्ताक्षरित लंबे समय के साथ परेशान करने के बजाय हेक्स स्ट्रिंग्स का उपयोग करके वर्ण गणना को प्राप्त कर सकते हैं (विशेषकर तब जब आपको पूर्णांक मानों की आवश्यकता नहीं है सिवाय उन्हें तार में बदलने के लिए, जो कोड जोड़ता है ...)
HostileFork का कहना है कि SE पर भरोसा मत करो

कृपया शीर्षक में बाइट गिनती जोड़ें। इसके अलावा, आपको अपना कोड अधिक नीचे गोल्फ करना चाहिए।
user12205

2

PHP, 874 बाइट्स

आपको इस स्क्रिप्ट को कमांड लाइन ( php uscii.php) से चलाने की आवश्यकता होगी क्योंकि यह स्टड से इनपुट लेता है।

<?php $f=base64_decode(str_replace('@','AA','@@@QhC@RSl@AClfV9SiPo4viYyIiJjZKiKyawi@@REIQQSCCEIiAEq6p@IT5C@@GEQ@Pg@@@xgAiIiAHRnXMXEYQhCOdEIiI/8RBBi4RlS+IX4eCGLjIh6MXfCIiEIdGLoxc6MXhEwDGAYwAGMAwiBERBBBAB8HwAQQQREQ6IREAR0QtrVzoxj+MfRj6MfOjCEIu5KMYy5+EPQh/8IehCDowvGL4xj+MYuIQhCOOIQhSZGVMUlGEIQhD8d1rGMYxzWcYujGMYu9GPoQg6MY1k30Y+pKL4QcEPvkIQhCRjGMYujGMYqJGMY1qqMVEVGMYxUQhPhEREPuQhCEOBBBBBA4QhCE4iog@@@AH0EE@@A4L4vhCHox8AD4Qg8IQvjF4AOj+DxFI4hC@+Lw+hCHoxiAgCEIQQBCFJiEJUxSWEIQhHAButaxAC2YxiADoxi4APR9C@Pi8IQAtmEI@+Dg+IT5CFEAEYxi4AIxiogARjWqgAioiogBFRCIAD4iI+MhEEIMhCAIQmCEEQmAug@@='));$a=trim(fgets(STDIN));$r='str_repeat';echo$r('0',70).$r($q='FFFFFFFFE0',5);foreach(str_split($a)as$c){$v=(ord($c)-32)*35;$x=$v>>3;$y=1<<(7-$v%8);$b=0;for($i=0;$i<40;$i++){$b+=$b+($i<35&&ord($f[$x])&$y);if(($i&7)==7)$b=!printf('%02X',$b);if(!($y>>=1)&&$x++)$y=128;}}echo$r($q,7).$r('F',50);

Ungolfed:

<?php

// Font bitmap data rearranged as 95 consecutive 35-bit strings and padded
// out to 416 bytes with zeros:
$f=base64_decode(str_replace('@','AA',
    '@@@QhC@RSl@AClfV9SiPo4viYyIiJjZKiKyawi@@REIQQSCCEIiAEq6p@IT5C@@GEQ@Pg'.
    '@@@xgAiIiAHRnXMXEYQhCOdEIiI/8RBBi4RlS+IX4eCGLjIh6MXfCIiEIdGLoxc6MXhEw'.
    'DGAYwAGMAwiBERBBBAB8HwAQQQREQ6IREAR0QtrVzoxj+MfRj6MfOjCEIu5KMYy5+EPQh'.
    '/8IehCDowvGL4xj+MYuIQhCOOIQhSZGVMUlGEIQhD8d1rGMYxzWcYujGMYu9GPoQg6MY1'.
    'k30Y+pKL4QcEPvkIQhCRjGMYujGMYqJGMY1qqMVEVGMYxUQhPhEREPuQhCEOBBBBBA4Qh'.
    'CE4iog@@@AH0EE@@A4L4vhCHox8AD4Qg8IQvjF4AOj+DxFI4hC@+Lw+hCHoxiAgCEIQQB'.
    'CFJiEJUxSWEIQhHAButaxAC2YxiADoxi4APR9C@Pi8IQAtmEI@+Dg+IT5CFEAEYxi4AIx'.
    'iogARjWqgAioiogBFRCIAD4iI+MhEEIMhCAIQmCEEQmAug@@='));

// Fetch input:
$a=trim(fgets(STDIN));

// Header:
$r='str_repeat';
echo $r('0',70).$r($q='FFFFFFFFE0',5);

// Convert each input character into its corresponding hex sequence:
foreach (str_split($a) as $c) {
  $v=(ord($c)-32)*35;
  $x=$v>>3;
  $y=1<<(7-$v%8);
  $b=0;
  for ($i=0;$i<40;$i++) {
    // When $i>34, pad with zeros
    $b += $b + ($i<35 && ord($f[$x]) & $y);
    if (($i&7)==7) $b=!printf('%02X',$b); // print out $b and set $b=0
    // Shift mask to next bit position
    if (!($y>>=1)&&$x++) $y=128;
  }
}

// Tail:
echo $r($q,7).$r('F',50);

+1 (हालांकि मुझे उम्मीद है कि कोई भी एलियन को PHP नहीं भेजता है !!)
HostileFork का कहना है कि SE पर भरोसा मत करो

2

जावास्क्रिप्ट ईएस 6 (838 बाइट्स)

_="z='00000';r=(n,m)=>m.repean);fop=prompi=o=';i<p.length;)o+=parseInatob('RSlClfV9SiPo4viYyIiJjZKiKyawiRQQSCCEq6pGEQPgxgAiIHRnXMXEYOdiI/8Ri4RlS+IX4eCGLjIhXfCIidGLcXhEwDGAYwAGMAwiBERBAB8HwAQQQREQ6IREAR0QtrVzj+MfRjfOjCu5KMYy5+EP/8IeDowvGL4xj+MYuIOOISZGVMUlGD8d1rxzWcYuju9GPoQgY1k30Y+pKL4QcEPvkIRjujqJ1qqMVEVxUPhEREPuEOBA4E4H0EEA4L4vH8AD4Qg8IQvjF4AOj+DxFI4+Lw+HgCQQBCFJiEJUxSWHAButaxAC2YxDi4APR9CPi8IQAtm+Dg+FEAEYxi4AIxARjWqgAioBFRCIAD4iI+MhEMAIQmCEEQmAugRV8nyE.split   p(e=>e028)).join    tch(/.{35}/g)[pi++)-32]+z,21610);14,z5,y='E0+o.toUpperCase(7,y5,10,'F)A.charCodeAQhGMY).toString(EI)).slice(-)+ ('.maC')hCoxiog(z+z+t(r(iABB6MFFAIT5C";for(Y in $=" ")with(_.split($[Y]))_=join(pop());eval(_)

कुचला नहीं गया :

z='00000';r=(n,m)=>m.repeat(n);for(p=prompt(i=o='');i<p.length;)o+=(z+z+parseInt(atob('AAAAAAQhCAARSlAAAClfV9SiPo4viYyIiJjZKiKyawiAAAAREIQQSCCEIiAEq6pAAIT5CAAAAGEQAAPgAAAAAAxgAiIiAHRnXMXEYQhCOdEIiI/8RBBi4RlS+IX4eCGLjIh6MXfCIiEIdGLoxc6MXhEwDGAYwAGMAwiBERBBBAB8HwAQQQREQ6IREAR0QtrVzoxj+MfRj6MfOjCEIu5KMYy5+EPQh/8IehCDowvGL4xj+MYuIQhCOOIQhSZGVMUlGEIQhD8d1rGMYxzWcYujGMYu9GPoQg6MY1k30Y+pKL4QcEPvkIQhCRjGMYujGMYqJGMY1qqMVEVGMYxUQhPhEREPuQhCEOBBBBBA4QhCE4iogAAAAAAAH0EEAAAAA4L4vhCHox8AD4Qg8IQvjF4AOj+DxFI4hCAA+Lw+hCHoxiAgCEIQQBCFJiEJUxSWEIQhHAButaxAC2YxiADoxi4APR9CAAPi8IQAtmEIAA+Dg+IT5CFEAEYxi4AIxiogARjWqgAioiogBFRCIAD4iI+MhEEIMhCAIQmCEEQmAugAAARV8nyE').split('').map(e=>(z+z+e.charCodeAt(0).toString(2)).slice(-8)).join('').match(/.{35}/g)[p.charCodeAt(i++)-32]+z,2).toString(16)).slice(-10);r(14,z)+r(5,y='FFFFFFFFE0')+o.toUpperCase()+r(7,y)+r(5,r(10,'F'))

+1 लेकिन बिना क्रश किए हुए संस्करण से परे, इसे क्षैतिज स्क्रॉलिंग के बिना एक पठनीय प्रारूप में देखने के लिए मददगार है ...
HostileFork का कहना है कि SE
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.