हेक्साडेसिमल शाब्दिकों के लिए $ सम्मेलन कब और कहाँ से हुआ?
मैंने इस सवाल0x
को हेक्साडेसिमल को दिलचस्प बनाने के मूल के बारे में पूछते हुए पाया ।
हालाँकि, जब मैंने 80 के दशक की शुरुआत में 8-बिट 65xx सिस्टम पर अपने दांतों की प्रोग्रामिंग में कटौती की, तो मैंने $
हेक्साडेसिमल अंकों (कोडांतरकों, मॉनिटर, पुस्तकों, पत्रिकाओं, आदि) को दर्शाने के लिए उपयोग किया । यह तब तक नहीं था जब तक मुझे अपना पहला अमिगा 1000 नहीं मिला और मैंने सी सीखना शुरू कर दिया कि मुझे पता था कि 0x
उपसर्ग एक चीज है।
यदि 0x
उपसर्ग स्पष्ट रूप से 8-बिट क्रांति से पहले होता है , तो (1) क्यों $
इतने व्यापक रूप से अपनाया गया था ? और इसके विपरीत, (2) 8 बिट प्रोग्रामर की एक पूरी पीढ़ी के लिए सर्वव्यापी हो गया, यह अचानक क्यों गिरा दिया गया था? (ऐसा नहीं है कि यह मायने रखता है, लेकिन मैं अभी भी$
कोड का उपयोग करते समय या मृत पेड़ों पर स्क्रिबलिंग करता हूं ।)
जवाब
संक्षिप्त जवाब:
मोटोरोला ने इसे अपने 6800 के लिए इस्तेमाल किया और MOS (6500) ने इसे मोटोरोला से विरासत में लिया। आखिरकार, 6500 टीम के सदस्य 6800 परियोजना से बाहर आ गए, इसलिए वे पहले से ही इसके अभ्यस्त थे।
लंबा जवाब:
यदि 0x उपसर्ग स्पष्ट रूप से 8-बिट क्रांति से पहले होता है,
यह वास्तव में नहीं है। मोटोरोला ने $
पहले से ही 1974 के 6800 के साथ उपसर्ग का इस्तेमाल किया । यूनिक्स को हाल ही में (1973) सी में फिर से लिखा गया था, जिसने 0x
उस समय के आसपास सम्मेलन को जोड़ा , और एटी एंड टी के बाहर दिखाया गया।
तब (1) $ को इतने व्यापक रूप से क्यों अपनाया गया?
मोटोरोला की 6800/02/09 लाइन के साथ-साथ MOS की 6500 श्रृंखला कई लोअर-एंड माइक्रो (होम) कंप्यूटरों में उपयोग की जाती है। सबसे विशेष रूप से एकोर्न, एप्पल, अटारी और कमोडोर द्वारा। स्वाभाविक रूप से, इन मशीनों / सीपीयू के लिए सॉफ्टवेयर लिखने वाला हर कोई इसके अंकन का उपयोग करेगा।
बाद में, इसका उपयोग 68000 की लोकप्रियता से लागू हुआ, उदाहरण के लिए, अटारी एसटी और कमोडोर अमीगा मशीनों के साथ।
और विपरीत, (2) 8 बिट प्रोग्रामर की एक पूरी पीढ़ी के लिए सर्वव्यापी बन गया,
अब यह बहुत हद तक आपके 'प्रोसेसर बबल' पर निर्भर करता है, क्योंकि यह केवल 65xx / 68xx आधारित मशीनों के उपयोगकर्ताओं के लिए सच है। जो कोई भी x80 (8080, 8085, Z80) या x86 आधारित मशीन के साथ बड़ा हुआ, जैसे कि Altair (S100), Tandy TRS-80 और संपूर्ण MSX दुनिया असहमत होगी। वे इस बात पर कायम रहेंगे कि एक H
प्रत्यय एकमात्र मान्य तरीका था और बाकी सब काफी विदेशी है :)
इसे अचानक क्यों गिरा दिया गया?
यह नहीं था दुनिया भर में कोई भी सत्ताधारी संस्था इसकी मुखालफत नहीं कर रही है। सब के बाद, उपसर्ग (या प्रत्यय) का उपयोग करना हेक्स कोड के लिए अंतर्निहित नहीं है, लेकिन प्रयुक्त भाषा द्वारा परिभाषित किया गया है। मोटोरोला / एमओएस असेंबलर एक $
उपसर्ग चाहते हैं , इंटेल एक H
प्रत्यय, सी एक 0x
उपसर्ग और अन्य लोग फिर से एक और अधिक गणित जैसे उपसर्ग 16#
(Ada) या 16r
(स्मॉलटाक) चाहते हैं।
(ऐसा नहीं है कि यह मायने रखता है, लेकिन मैं अभी भी $ का उपयोग करता हूं जब मृत पेड़ों पर कोड या स्क्रिबलिंग टिप्पणी करता हूं।)
और इसलिए कई अन्य (* 3) करते हैं।
नीचे की रेखा: भाषा जो एक का उपयोग करती है वह संकेतन को परिभाषित करती है - और हमेशा की तरह, पहली गहरी छाप छोड़ती है।
उपसर्ग के बाद उपसर्ग का लाभ
क्लासिक गणित एक संख्या के मूलांक के बाद होने वाले एक उपसर्ग संकेतन का उपयोग करता है । जो इंटेल ने उनके nnnnH
अंकन के साथ अनुसरण किया । संकलक लेखन के लिए, यह नकारात्मक पहलू लाता है कि एक पूरे शब्द (स्थिर) को पहले पढ़ना होगा, इससे पहले कि यह तय किया जा सके कि इसकी व्याख्या कैसे की जाए। इसका मतलब है कि पूरे स्ट्रिंग को पकड़ने के लिए एक बफर की आवश्यकता होती है, क्योंकि यह केवल पोस्टफ़िक्स तक आगे बढ़ने के बाद परिवर्तित किया जा सकता है।
एक उपसर्ग का उपयोग करके, यह शुरू से ही स्पष्ट है कि निम्नलिखित वर्णों की व्याख्या कैसे करें। यह बफर (* 2) की कोई जरूरत नहीं है। यह पार्सर डिजाइन में एक लाभ देता है और कोडांतरक को बहुत सरल करता है। यह पहली बूटस्ट्रैप के रूप में शुरुआती क्रॉस असेंबलर टूल के तेजी से निर्माण के लिए विशेष रूप से सहायक था।
कुछ इतिहास
प्रारंभिक वर्षों में हेक्स संकेतन असामान्य था। इसके बजाय, ऑक्टल वह चीज थी, जैसा कि अधिकांश मशीनें 3 शब्द आकार के एक से अधिक में निर्मित होती थीं , साथ ही पात्रों को आमतौर पर 6 बिट्स के रूप में संभाला जाता था।
कुछ मशीनों / प्रणालियों की पेशकश की है कि बहुत जल्दी, कई विभिन्न अक्षरों / प्रतीकों का इस्तेमाल किया, वर्णमाला में पिछले 6 की तरह
UVWXYZ
(* 2), अक्सर भी गैर-निरंतर।आईबीएम ने
X'nnnn'
1965 में / 360 के साथ एक पूर्व-निर्मित स्ट्रिंग प्रारूप ( ) पेश कियाडाटापॉइंट ने एक उपसर्ग शून्य के साथ अष्टक का उपयोग किया
इंटेल के 4004 में एक प्रत्यय के साथ हेक्स का उपयोग किया गया था
h
इंटेल के 8008 ने मैनुअल और डॉक्यूमेंटेशन में सभी ऑक्टल का उपयोग किया है, जिसे लिखा गया है
nnnO
1973 तक, दोनों असेंबलरों को एक ही बी / ओ / एच प्रत्यय का उपयोग करने के लिए बनाया गया था।
* 1 - बफर के कुछ बाइट्स की देखभाल आज अजीब सी हो सकती है, जहां पूरे स्रोत को आमतौर पर मेमोरी में लोड किया जाता है, लेकिन रैम तब एक डरावना संसाधन था। नतीजतन, एल्गोरिदम को प्राथमिकता दी गई थी जो डेटा को पढ़ सकते थे, जैसे पेपर टेप से, और बिना बफरिंग के पढ़े प्रत्येक प्रतीक पर सीधे काम करते हैं।
एक इष्टतम कोडांतरक किसी भी वस्तु को एक बार में एक चरित्र को पढ़ने और उसे आगे देखने की आवश्यकता नहीं होने के साथ संसाधित करता है। एक उपसर्ग का उपयोग यह समर्थन करता है।
* 2 - प्रतीकों की आवश्यकता होने पर अक्सर इंजीनियरिंग में एक सम्मेलन का उपयोग किया जाता है।
* 3 - यहाँ RC.SE पर मैं टॉपिक के अनुसार अंकन का उपयोग करने की कोशिश करता हूं, इसलिए $
65/68 के लिए, H
इंटेल के लिए, और इसी तरह ... और जब कोई स्पष्ट संबंध नहीं है, तो मैं / 370 नोटेशन पर वापस आ जाऊंगा x'nn'
, जैसा कि मैंने $
पहले इस्तेमाल करने के बावजूद सबसे ज्यादा इस्तेमाल किया था।