7

मुझे पता है कि कंप्यूटर संख्याओं को बाइनरी में कैसे अनुवाद करते हैं। लेकिन जो मुझे समझ में नहीं आता है वह यह है कि मैंने सुना है कि कंप्यूटर बाइनरी के लिए सबकुछ (शब्द, निर्देश, ...) का अनुवाद करते हैं, केवल संख्याओं में नहीं। यह कैसे संभव है?कंप्यूटर सब कुछ बाइनरी में कैसे अनुवाद करते हैं? जब वे एक बाइनरी कोड देखते हैं, तो वे कैसे जानते हैं कि यह किसी संख्या या शब्द या निर्देश का प्रतिनिधित्व करता है या नहीं?

क्या आप मुझे कुछ उदाहरण दिखा सकते हैं? एक कंप्यूटर बाइनरी में "ए" अक्षर का अनुवाद कैसे करता है?

और जब कंप्यूटर बाइनरी कोड देखते हैं, तो वे कैसे जान सकते हैं कि 0 और 1s की लंबी स्ट्रिंग किसी संख्या या शब्द या निर्देश का प्रतिनिधित्व करती है?

उदाहरण:

मान लीजिए कि एक कंप्यूटर प्रोग्रामर इनकोडिंग पत्र "Z" इतना है कि यह इस बाइनरी स्ट्रिंग के लिए अनुवाद करते हैं: 11011001111011010111

तो जब कंप्यूटर इस बाइनरी स्ट्रिंग का सामना करेंगे, यह अनुवाद कर देगा पत्र "जेड" के लिए।

लेकिन जब हम इस कंप्यूटर से पूछते हैं तो "क्या होता है" 12 9 5 तक 70 9 का उत्पाद क्या है? "

कंप्यूटर हमें जवाब देगा "892631"। लेकिन उस संख्या, जब बाइनरी में अनुवाद किया गया है, 11011001111011010111 है।

तो यह "Z" और "892631" के बीच एक अंतर कैसे बनाएगा?

कृपया ध्यान दें कि मुझे कंप्यूटर विज्ञान के बारे में बहुत कुछ नहीं पता है, इसलिए कृपया सरल शब्दों में सब कुछ समझाएं।

उत्तर

7

यह एक उत्कृष्ट सवाल है, और एक जिसमें वर्षों लगेंगे, और कई पीएचडी पूरी तरह से समझाएंगे। मैं आपको एक सरल उत्तर दे सकता हूं, लेकिन पूरी तरह से समझने के लिए आपको बहुत अधिक शोध करना होगा। क्या मैं विषय here पर एमआईटी से कुछ मुफ्त ऑनलाइन कक्षाओं का सुझाव दे सकता हूं।

निम्नतम स्तर पर, अक्षर ए और संख्या 65 वास्तव में 0 और 1 के समान अनुक्रम का उपयोग करके संग्रहीत किया जाता है। 1000001 अगर मुझे गलत नहीं लगता है।

कंप्यूटर तब तय करता है कि यह स्मृति से इसे कब पकड़ता है। इसका मतलब है कि अक्षरों को संख्याओं के रूप में प्रदर्शित किया जा सकता है, और इसके विपरीत।

जिस तरह से कंप्यूटर जानता है कि यह क्या ढूंढ रहा है यह है कि प्रोग्रामर इसे बताता है कि इसकी क्या तलाश है। प्रोग्रामर का कहना है कि मैं इस तरह के और ऐसे स्थान पर संग्रहीत एक नंबर चाहता हूं, और कंप्यूटर जाता है और इसकी तलाश करता है।

चलिए एक स्तर बढ़ाते हैं, क्योंकि शायद ही कभी कम स्तर पर प्रोग्राम प्रोग्राम करते हैं। अन्य कार्यक्रम (आमतौर पर कंपाइलर्स जो सी ++ जैसे कोड लेते हैं और इसे कंप्यूटर में समझने वाले किसी चीज़ में बदल देते हैं) सुनिश्चित करें कि जिस स्थान पर हम पहुंच रहे हैं वह वास्तव में हमने जो कहा है वह है। उनके पास अतिरिक्त जानकारी है जो उन्हें बताती है कि 1 और 0 का यह विशेष सेट वास्तव में एक फ़्लोटिंग पॉइंट प्रकार है (एक दशमलव बिंदु है) जबकि यह सेट है और पूर्णांक (कोई दशमलव बिंदु नहीं)

फिर अन्य प्रकार उन प्रकारों पर निर्माण करते हैं, बड़े पूर्णांक, या फ़्लोटिंग पॉइंट, या वर्णों के तार, और फिर संकलक प्रकारों को लागू करते हैं।

यह एक अतिसंवेदनशीलता है, और मुझे एहसास है कि यहां सबकुछ बिल्कुल सही नहीं है, लेकिन यह आपको सही रास्ते पर ले जाएगा।आप इन विषयों में से कुछ की जाँच एक बेहतर विचार प्राप्त करने के सकता है:

How instructions are differentiated from data?

http://en.wikipedia.org/wiki/Computer_data_storage

How is data, address and Instruction differentiated in Processor/Register/memory?

http://en.wikipedia.org/wiki/Reference_(computer_science)

आशा है कि यह एक छोटी सी चीजें साफ करता है। स्पष्टीकरण के लिए पूछने के लिए स्वतंत्र महसूस करें!

+1

इस उत्तर पर बिल्डिंग, आपको बाइनरी मिली है जो 0 और 1 है, और हार्डवेयर पर सही काम कर रही है। अमूर्तता का एक और स्तर इसे असेंबली में बदल देता है, जिसमें एडीडी, एसयूबी, डीआईवी, एमयूएल आदि जैसे सरल निर्देश होते हैं और बताते हैं कि * बाइनरी को कैसे बातचीत करनी चाहिए। यह अभी भी बहुत ग़लत प्रवण था और अंततः आपके पास व्याकरण और वाक्यविन्यास के साथ सरल प्रोग्रामिंग भाषाएं थीं, जिन्हें ** ** असेंबली और द्विआधारी में संकलित किया गया है, जो मानव शब्दों को मशीन भाषा में अनुवादित करता है। –

7

कंप्यूटर वास्तव में बाइनरी में कुछ भी अनुवाद नहीं करते हैं, यह शुरुआत से सभी बाइनरी है, और कंप्यूटर बाइनरी के अलावा कुछ और नहीं जानता है।

स्मृति में संग्रहीत वर्ण A01000001 होगा, और कंप्यूटर को बाइनरी संख्या के अलावा कुछ भी नहीं दिखता है। जब हम कंप्यूटर को उस नंबर को स्क्रीन पर एक वर्ण के रूप में प्रदर्शित करने के लिए कहते हैं, तो यह स्क्रीन हार्डवेयर को भेजने के लिए कुछ अन्य बाइनरी संख्याओं को खोजने के लिए फ़ॉन्ट परिभाषा में ग्राफिकल प्रतिनिधित्व को देखेगा।

उदाहरण के लिए यदि कंप्यूटर था एक आठ बिट अटारी, यह स्क्रीन के चरित्र A प्रतिनिधित्व करने के लिए आठ द्विआधारी मूल्यों को खोजने होगा:

00000000 
00011000 
00111100 
01100110 
01100110 
01111110 
01100110 
00000000 

आप देख सकते हैं, द्विआधारी मूल्यों तो अंधेरे के लिए अनुवाद होगा और चमकदार पिक्सल जब ग्राफिक्स हार्डवेयर स्क्रीन पर इसे आकर्षित करेगा।

इसी तरह, हम कंप्यूटर में संख्याओं के साथ जो कुछ भी करते हैं, वह द्विआधारी मूल्यों पर गणना करने, और अन्य बाइनरी मानों में अनुवाद करने के आसपास बाइनरी मानों को स्थानांतरित करने के सभी तरीके हैं।

उदाहरण के लिए यदि आप A के लिए चरित्र कोड लेने के लिए और एक दशमलव संख्या के रूप में यह प्रदर्शित करना चाहते हैं, कंप्यूटर की गणना है कि संख्या के दशमलव प्रतिनिधित्व अंक 6 (110) और 5 (101) है, उसका अनुवाद करने कि चरित्र 6 (00110110) और चरित्र 5 (00110101), और फिर उनके ग्राफिकल प्रतिनिधित्व में अनुवाद करें।

4

So how would it make a difference between "Z" and "892631"?

यह नहीं करता है। कंप्यूटर के लिए, सब कुछ 0 और 1 एस है। प्रोसेसर को तब तक कच्चे बिट्स का कोई मतलब नहीं है जब तक उन 0s और 1s के साथ क्या करना है!

उदाहरण के लिए, मैं एक चर x बना सकता हूं और इसका मान 0b01000001 (0 बी का अर्थ है "यह एक संख्या है जिसे मैं बाइनरी में वर्णित कर रहा हूं")। मैं फिर प्रोसेसर को मेरे लिए स्क्रीन पर परिवर्तनीय x मुद्रित करने के लिए कह सकता था। लेकिन मुझे सबसे पहले प्रोसेसर को अवश्य कहना चाहिए कि x क्या है!

printf("%d", x); // this prints the decimal number 65 

printf("%c", x); // this prints the character A 

तो x अपने आप में कुछ भी नहीं है, कच्चे बिट्स 01000001 छोड़कर मतलब है। लेकिन प्रोग्रामर के रूप में कंप्यूटर को यह बताने का मेरा काम है कि x वास्तव में क्या मतलब है।

-1

ध्यान रखें कि यदि आप अक्षर ए देखते हैं तो यह स्क्रीन के लिए एक ऐसा आदेश है जो ए जैसा दिखता है। प्रोग्रामर को अभी भी फ़ॉन्ट बनाने की आवश्यकता है और इसमें स्क्रीन के लिए डेटा शामिल है: यदि रंग काला है। इस फ़ॉन्ट फ़ाइल में अक्षर ए द्वारा दिखाए गए पिक्सेल निर्देशांक भरें। हमारे शब्दों में ...

+0

यह प्रश्न का पूरा उत्तर नहीं है और इसके बजाय एक टिप्पणी होना चाहिए। –

+0

या यदि आपके पास टेक्स्ट मोड का उपयोग करके वीडियो हार्डवेयर है, तो इसमें अंतर्निहित फोंट हैं जो यह रास्टर स्कैन के दौरान उपयोग करता है। सभी सॉफ़्टवेयर को वीडियो मेमोरी में एएससीआईआई बाइट स्टोर करना है। यह भी देखें https://stackoverflow.com/questions/47186682/implementation-of-the-ascii-system/47187698#47187698 जो इस उत्तर के रूप में एक ही बात कहता है, केवल एक प्रश्न पर जो केवल ASCII कोड के बारे में पूछा जाता है, बहुत कुछ इस सवाल से कम सामान्य। –

संबंधित मुद्दे