मैं ऑपरेटिंग सिस्टम के बारे में एक कॉलेज के पाठ्यक्रम का अनुसरण कर रहा हूं और हम बाइनरी से हेक्साडेसिमल, दशमलव से हेक्साडेसिमल, आदि में बदलना सीख रहे हैं और आज हमने सिर्फ यह सीखा कि दो के पूरक का उपयोग करके मेमोरी में कैसे हस्ताक्षरित / अहस्ताक्षरित नंबर संग्रहीत किए जाते हैं (~ संख्या + 1)।
हमारे पास कागज पर करने के लिए कुछ अभ्यास हैं और मैं शिक्षक को अपना काम सौंपने से पहले अपने उत्तर सत्यापित करने में सक्षम होना चाहूंगा। मैंने पहले कुछ अभ्यासों के लिए C ++ प्रोग्राम लिखा था, लेकिन अब मैं इस बात पर अड़ा हुआ हूं कि मैं निम्नलिखित समस्या के साथ अपने उत्तर को कैसे सत्यापित कर सकता हूं:
char a, b;
short c;
a = -58;
c = -315;
b = a >> 3;
और हम द्विआधारी प्रतिनिधित्व दिखाने की जरूरत है स्मृति में की a
, b
और c
।
मैंने इसे कागज पर किया है और यह मुझे निम्नलिखित परिणाम देता है (दो के पूरक के बाद संख्याओं की स्मृति में सभी द्विआधारी निरूपण):
a = 00111010 (यह एक चर है, इसलिए 1 बाइट)
b = 00001000 (यह एक चर है, इसलिए 1 बाइट)
c = 11111110 11000101 (यह छोटा है, इसलिए 2 बाइट्स)
क्या मेरे उत्तर को सत्यापित करने का कोई तरीका है? क्या सी ++ में किसी संख्या की याद में बाइनरी प्रतिनिधित्व दिखाने के लिए एक मानक तरीका है, या क्या मुझे प्रत्येक चरण को खुद को कोड करना होगा (दो के पूरक की गणना करें और फिर बाइनरी में कनवर्ट करें)? मुझे पता है कि बाद में इतना समय नहीं लगेगा, लेकिन मैं उत्सुक हूं कि क्या ऐसा करने का कोई मानक तरीका है।
std::hex
मैनिपुलेटर का उपयोग करके ) प्रिंट कर सकते हैं - मैं इसे आराम करने के लिए आपके लिए एक अभ्यास के रूप में छोड़ दूँगा ...