बहुत जल्द यह 50 साल होने जा रहा है क्योंकि आईबीएम ने अपने सिस्टम / 360 कंप्यूटर के परिवार का अनावरण किया । ये EBCDIC वर्ण सेट का उपयोग करने वाले पहले व्यक्ति थे ।
अवसर को चिह्नित करने के लिए, आइए देखें कि EBCDIC कोड पृष्ठ 037 से "साधारण" टेक्स्ट को परिवर्तित करने में सक्षम सबसे छोटा प्रोग्राम कौन लिख सकता है। हम विकिपीडिया से एक अनुवाद तालिका का उपयोग कर रहे हैं जो CP037 को ISO-8855-1 के सुपरसेट पर मैप करता है। :
EBCDIC037_to_Latin1 = [
0x00,0x01,0x02,0x03,0x9c,0x09,0x86,0x7f,0x97,0x8d,0x8e,0x0b,0x0c,0x0d,0x0e,0x0f,
0x10,0x11,0x12,0x13,0x9d,0x85,0x08,0x87,0x18,0x19,0x92,0x8f,0x1c,0x1d,0x1e,0x1f,
0x80,0x81,0x82,0x83,0x84,0x0a,0x17,0x1b,0x88,0x89,0x8a,0x8b,0x8c,0x05,0x06,0x07,
0x90,0x91,0x16,0x93,0x94,0x95,0x96,0x04,0x98,0x99,0x9a,0x9b,0x14,0x15,0x9e,0x1a,
0x20,0xa0,0xe2,0xe4,0xe0,0xe1,0xe3,0xe5,0xe7,0xf1,0xa2,0x2e,0x3c,0x28,0x2b,0x7c,
0x26,0xe9,0xea,0xeb,0xe8,0xed,0xee,0xef,0xec,0xdf,0x21,0x24,0x2a,0x29,0x3b,0xac,
0x2d,0x2f,0xc2,0xc4,0xc0,0xc1,0xc3,0xc5,0xc7,0xd1,0xa6,0x2c,0x25,0x5f,0x3e,0x3f,
0xf8,0xc9,0xca,0xcb,0xc8,0xcd,0xce,0xcf,0xcc,0x60,0x3a,0x23,0x40,0x27,0x3d,0x22,
0xd8,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0xab,0xbb,0xf0,0xfd,0xfe,0xb1,
0xb0,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0xaa,0xba,0xe6,0xb8,0xc6,0xa4,
0xb5,0x7e,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0xa1,0xbf,0xd0,0xdd,0xde,0xae,
0x5e,0xa3,0xa5,0xb7,0xa9,0xa7,0xb6,0xbc,0xbd,0xbe,0x5b,0x5d,0xaf,0xa8,0xb4,0xd7,
0x7b,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0xad,0xf4,0xf6,0xf2,0xf3,0xf5,
0x7d,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0xb9,0xfb,0xfc,0xf9,0xfa,0xff,
0x5c,0xf7,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0xb2,0xd4,0xd6,0xd2,0xd3,0xd5,
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xb3,0xdb,0xdc,0xd9,0xda,0x9f];
नियम:
आपके प्रोग्राम को दो इनपुट लेने चाहिए: (ए) एक टेक्स्ट स्ट्रिंग, और (बी) एक फ्लैग जो ऑपरेशन करने का संकेत देता है।
इस ध्वज के आधार पर, आपके प्रोग्राम को या तो टेक्स्ट के प्रत्येक बाइट को संबंधित EBCDIC वर्ण में बदलना चाहिए, या इसके विपरीत।
इनपुट किसी भी समझदार स्रोतों (जैसे, कमांड लाइन तर्क, स्टड, कीबोर्ड इनपुट) से प्राप्त किया जा सकता है, लेकिन आपके प्रोग्राम में हार्ड-कोड नहीं होना चाहिए।
आउटपुट को स्क्रीन पर प्रदर्शित किया जाना चाहिए (जैसे, stdout
document.write
) , या फ़ाइल / पाइपलाइन के लिए लिखा गया है।किसी भी अंतर्निहित या बाहरी एन्कोडिंग रूपांतरण कार्यों (
iconv
, आदि) का उपयोग न करें ।यह एक कोड-गोल्फ चुनौती है, इसलिए सबसे छोटा उत्तर (सबसे कम बाइट्स) जीतेगा।
उदाहरण:
(नोट: ये उदाहरण UTF-8 एन्कोडिंग का उपयोग करने के लिए कॉन्फ़िगर किए गए टर्मिनल में निर्मित किए गए थे। सिस्टम कैसे कॉन्फ़िगर किया गया है, इसके आधार पर आप अलग-अलग परिणाम देख सकते हैं। हेक्स समतुल्य केवल संदर्भ के लिए दिखाए जाते हैं, और आपको अपने कोड द्वारा उत्पन्न नहीं करना पड़ता है। ।)
Input: "HELLO WORLD", convert to EBCDIC
Output: "ÈÅÓÓÖ@æÖÙÓÄ" (0xc8c5d3d3d640e6d6d9d3c4)
Input: "ÈÅÓÓÖ@æÖÙÓÄ", convert from EBCDIC
Output: "HELLO WORLD"
Input: "lower case mostly ends up as gremlins", convert to EBCDIC
Output "" <-- unprintable in utf-8
(0x9396a68599408381a285409496a2a393a840859584a240a4974081a24087998594938995a2)
s.decode('base64')
मुझे अपना लुक-अप टेबल प्राप्त करना है?