द्वयंक संक्रिया

मुक्त ज्ञानकोश विकिपीडिया से
यहाँ जाएँ: भ्रमण, खोज

डिजिटल कम्प्यूटर की प्रोग्रामिंग में, द्वयंक संक्रिया (bitwise operation) वह संक्रिया है जो किसी एक द्वयाधारी संख्या के बिट्स या दो/अधिक द्वयाधारी संख्याओं के बिट के स्तर पर की जाती हैं। उदाहरण के लिये, 1001 के प्रत्येक अंक को उलट कर 0110 कर दिया जाय तो यह एक द्वयंक संक्रिया है। इसी तरह 1010 और 0100 के बिटों पर OR संक्रिया की जाय (पहले बिट की पहले बिट से, दूसरे की दूसरे बिट से आदि) तो हमे 1110 मिलेगा।

द्वयंक संक्रियाएँ सरल और तेज गति से होनी वाली संक्रियाएँ हैं। ये संक्रियाएँ छोटे तथा कम मूल्य वाले प्रोसेसरों में भी उपलब्ध होतीं हैं। इनका उपयोग द्वयाधारी संख्याओं को तुलना करने तथा अन्य गणनाओं के लिये तैयार करना (manipulat) होता है। सरल, कम मूल्य वाले प्रोसेसरों पर भाजन की अपेक्षा द्वयंक संक्रिया बहुत तेज गति से हो जाती है, गुणन की अपेक्षा द्वयंक संक्रिया कई गुना तेज होती है, जोड़ की अपेक्षा कुछ तेज होती है। यद्यपि आधुनिक प्रोसेसर योग और गुणन की संक्रियाएं भी द्वयंक संक्रियाओं की तरह ही तेज गति से कर लेते हैं किन्तु बिट-वाइज संक्रिया में फिर भी कम विद्युत-शक्ति खर्च होती है।

NOT[संपादित करें]

 |  A  |  S  |
 +-----+-----+
 |  0  |  1  |
 +-----+-----+
 |  1  |  0  |
 +-----+-----+

AND[संपादित करें]


 |  B  |  A  |  S  |
 +-----+-----+-----+
 |  0  |  0  |  0  |
 +-----+-----+-----+
 |  0  |  1  |  0  |
 +-----+-----+-----+
 |  1  |  0  |  0  |
 +-----+-----+-----+
 |  1  |  1  |  1  |
 +-----+-----+-----+

OR[संपादित करें]

 |  B  |  A  |  S  |
 +-----+-----+-----+
 |  0  |  0  |  0  |
 +-----+-----+-----+
 |  0  |  1  |  1  |
 +-----+-----+-----+
 |  1  |  0  |  1  |
 +-----+-----+-----+
 |  1  |  1  |  1  |
 +-----+-----+-----+

XOR[संपादित करें]

 |  B  |  A  |  S  |
 +-----+-----+-----+
 |  0  |  0  |  0  |
 +-----+-----+-----+
 |  1  |  0  |  1  |
 +-----+-----+-----+
 |  0  |  1  |  1  |
 +-----+-----+-----+
 |  1  |  1  |  0  |
 +-----+-----+-----+

Shift[संपादित करें]

Arithmetic shift[संपादित करें]

Left arithmetic shift
Right arithmetic shift

8-bit रजिस्टर पर शिफ्ट संक्रिया -

00010111 (decimal +23) LEFT-SHIFT
= 00101110 (decimal +46)
10010111 (decimal −105) RIGHT-SHIFT
= 11001011 (decimal −53)

Logical shift[संपादित करें]

Left logical shift
Right logical shift

Rotate through carry[संपादित करें]

Left rotate through carry
Right rotate through carry