साइन एक्सटेंशन

From Vigyanwiki
Revision as of 15:24, 26 October 2023 by Abhishekkshukla (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

साइन एक्सटेंशन (सेक्स्ट के रूप में संक्षिप्त)कंप्यूटर अंकगणित में ऑपरेशन है, संख्या के संकेत (गणित) को संरक्षित करते हुए बाइनरी संख्या के अंश की संख्या को बढ़ाया जाता है, लेकिन नंबर के साइन (सकारात्मक/नकारात्मक) को संरक्षित रखा जाता है। यह उपयोग किए गए विशेष हस्ताक्षरित संख्या प्रतिनिधित्व पर निर्भर प्रक्रिया के बाद, संख्या के सबसे महत्वपूर्ण बिट पक्ष में अंकों को जोड़कर किया जाता है।

उदाहरण के लिए, यदि संख्या 00 1010 (दशमलव सकारात्मक 10) का प्रतिनिधित्व करने के लिए छह बिट्स का उपयोग किया जाता है और साइन एक्सटेंड ऑपरेशन वर्ड (डेटा प्रकार) को 16 बिट तक बढ़ा देता है, तो नया प्रतिनिधित्व सिर्फ0000 0000 0000 1010होता है। इस प्रकार, नंबर के मान और यह तथ्य दोनों बनाए रखे जाते हैं कि मान धनात्मक है।

यदि दो संकेत उपयोग करके दो कम्प्लीमेंट द्वारा 11 1111 0001(दशमलव ऋणात्मक 15) के मान को दर्शाने के लिए दस बिट का उपयोग किया जाता है और इसे 16 बिट में साइन एक्सटेंशन किया जाता है, तो नया प्रतिनिधित्व1111 1111 1111 0001 होता है। इस तरह से, बाएं ओर के जनरल पर्सपोज रखकर अपने साथ एक दोष और मूल संख्या का मान बनाए रखने से नकारात्मक चिह्न और मूल संख्या का मान बरकरार रहता है।

इंटेल x86 इंस्ट्रक्शन सेट में, उदाहरण के लिए, साइन एक्सटेंशन करने के दो तरीके होते हैं:

  • निर्देशों का उपयोग करना cbw, cwd, cwde, और cdq का उपयोग करके: बाइट से वर्ड, वर्ड से डबलवर्ड, वर्ड से एक्सटेंडेड डबलवर्ड और डबलवर्ड से क्वाडवर्ड में कन्वर्ट करें, उल्लेखनीय हैं (x86 संदर्भ में एक बाइट में 8 बिट होते हैं, एक वर्ड में 16 बिट, एक डबलवर्ड और एक्सटेंडेड डबलवर्ड में 32 बिट और एक क्वाडवर्ड में 64 बिट होते हैं);
  • साइन विस्तारित चालों में से एक का उपयोग करके, द्वारा पूरा किया गया movsx (साइन एक्सटेंशन के साथ आगे बढ़ें) निर्देशों का परिवार।

शून्य विस्तार

एक समान अवधारणा शून्य विस्तार (zext के रूप में संक्षिप्त) है। एक स्थानांतरण या परिवर्तन आपरेशन में, शून्य विस्तार उच्चतम बिट को स्रोत के सबसे महत्वपूर्ण बिट की प्रतिलिपि करने के बजाय उसे शून्य पर सेट करने का संकेत देता है। यदि ऑपरेशन का स्रोत एक असाइन्ड नंबर है, तो शून्य विस्तार आमतौर पर उसे एक बड़े फ़ील्ड में ले जाने के लिए सही तरीका है जबकि उसके आंकिक मान को संरक्षित रखता है, जबकि साइन एक्सटेंशन साइन्ड नंबर के लिए सही है।

X86 और x64 निर्देश सेट में, movzx निर्देश (शून्य विस्तार के साथ चलें) इस कार्य को करता है। उदाहरण के लिए, movzx ebx, al alरजिस्टर से एक बाइट की प्रतिलिपि को ebx के कम आदेश बाइट में कॉपी करता है और फिर ebx के बचे हुए बाइट्स को शून्यों से भरता है।

X64 पर, अधिकांश निर्देश जो किसी भी सामान्य-उद्देश्य वाले रजिस्टरों के निचले 32 बिट्स की संपूर्णता को लिखते हैं, गंतव्य रजिस्टर के ऊपरी आधे भाग को शून्य कर देंगे। उदाहरण के लिए, निर्देश mov eax, 1234 rax[lower-alpha 1] के ऊपरी 32 बिट्स को साफ कर देगा पंजीकरण करवाना होता है।

यह भी देखें

संदर्भ

  • Mano, Morris M.; Kime, Charles R. (2004). Logic and Computer Design Fundamentals (3rd ed.), pp 453. Pearson Prentice Hall. ISBN 0-13-140539-X.


टिप्पणियाँ