2012-03-01 24 views
10

से घटाकर मैं कंप्यूटर संगठन और असेंबली भाषा पाठ्यक्रम ले रहा हूं। इस सप्ताह हमारे प्रयोगशाला के लिखित हिस्से पर एक सवाल है जिसने मुझे स्टंप किया है। प्रश्न पढ़ता है ...एक छोटे से हस्ताक्षर किए गए बाइनरी नंबर को एक छोटे से

निम्नलिखित हस्ताक्षरित बाइनरी संख्याओं को घटाएं (उधार और अतिप्रवाह बिट्स दिखाएं)। दो के पूरक में परिवर्तित न करें।

0101 0111 1101 
-1110 1011 0110 
-------------- 

मुझे लगता है कि इस सवाल का जवाब -1001 0011 1001 है, लेकिन मैं बड़ी संख्या ले रहे हैं और से यह घटा कर यह पता लगाने की वास्तव में इस घटाव प्रदर्शन करने के लिए उधार लेने के लिए कैसे की कोशिश कर रहा एक कठिन समय हो रही है छोटी संख्या और मेरा काम दिखाओ। मेरी पूरी जिंदगी जब एक छोटी संख्या से बड़ी संख्या में घटाना मैंने समस्या को उलट दिया है और इसके बजाय बड़ी संख्या से छोटी संख्या घटा दी है और परिणाम के सामने एक नकारात्मक संकेत जोड़ा है। मैंने प्रोफेसर से पूछा और वह कहता है कि वह चाहता है कि समस्या जिस तरह से लिखी गई है, हल हो जाए। मुझे बड़ी संख्या से छोटी संख्या को घटाकर और सामान्य रूप से अस्वीकार करने से इसे हल करने की अनुमति नहीं है। मैं एक छोटे से हस्ताक्षरित बाइनरी संख्या घटाने के ऑनलाइन किसी भी उदाहरण को खोजने में सक्षम नहीं हूं।

अगर कोई मुझे बता सकता है कि इस परिदृश्य में घटाव कैसे किया जाए तो मैं वास्तव में इसकी सराहना करता हूं।

अद्यतन: @ एलेक्स सही है। प्रोफेसर

0110 1100 0111 (1735) 

सभी को धन्यवाद।

+2

क्या आप वाकई कुछ उधार बिट्स और ओवरफ्लो बिट के संकेत के साथ '0110 1100 0111' नहीं चाहते हैं? – Beta

+0

@ बीटा: नहीं, उत्तर '-1001 0011 1001' (-2361) है। वह सिर्फ सामान्य बाइनरी संख्याओं के साथ काम कर रहा है, न कि एक विशेष कंप्यूटर प्रतिनिधित्व जैसे कि 2'-पूरक। –

+0

मुझे यकीन नहीं है कि प्रोफेसर -1001 0011 1001 (-2361) या 0110 1100 0111 (1735) के बाद था, मैं 1735 के साथ जा रहा था। मुझे लगता है कि @ बीटा सही है। प्रयोगशाला वापस सौंपे जाने पर मैं जो कुछ ढूंढ रहा था उसके साथ वापस पोस्ट करूंगा। –

उत्तर

7

आप यह वही करते हैं, भले ही कौन सा नंबर बड़ा हो और जो छोटा हो।

bb b  bb <- borrows 
0101 0111 1101 (1405) 
-1110 1011 0110 (3766) 
-------------- 
0110 1100 0111 (1735?) 

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

b bb b  bb <- borrows 
0 0101 0111 1101 (1405) 
-0 1110 1011 0110 (3766) 
---------------- 
1 0110 1100 0111 (-2361 signed 2's complement) 

वास्तव में, सीपीयू नहीं है देखभाल क्या से घट जाती है। यह पूर्णांक अतिरिक्त/घटाव के लिए एक ही एल्गोरिदम का उपयोग करता है, इसके अलावा, यह एल्गोरिदम हस्ताक्षरित और हस्ताक्षरित पूर्णांक के लिए समान है। आपको केवल परिणाम और कैरी और ओवरफ्लो झंडे की सही व्याख्या करना होगा। बस इतना ही।

+1

-1 उसने विशेष रूप से कहा कि वह 2 के पूरक –

+0

धन्यवाद एलेक्स में काम नहीं कर रहा है। मुझे संदेह है कि आपका शीर्ष उदाहरण प्रोफेसर के बाद क्या है। समस्या को हल करने की कोशिश करते समय मैंने यही किया। मुझे लगता है कि समस्या का मुद्दा हो सकता है ... यह दिखाने के लिए कि घटाव इस परिदृश्य में सही परिणाम नहीं देता है। मुझे लगता है कि मैं सिर्फ गलत मानसिकता से समस्या का सामना कर रहा था। –

+0

@ ब्लूराजा-डैनीफ्लुघोएफ्ट: उन्होंने कहा "दो पूरक में परिवर्तित न करें।" और मैंने कुछ भी नहीं बदला। –

-1

बस दो बाइनरी संख्याओं को घटाएं, फिर परिणाम के 2 पूरक को लें। देखा!