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

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

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

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

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

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

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

X64 पर, अधिकांश निर्देश जो किसी भी सामान्य-उद्देश्य वाले रजिस्टरों के निचले 32 बिट्स की संपूर्णता को लिखते हैं, गंतव्य रजिस्टर के ऊपरी आधे भाग को शून्य कर देंगे। उदाहरण के लिए, निर्देश  के ऊपरी 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.

टिप्पणियाँ
Zweierkomplement