0xCA AND 0x5C (8-बिट)
- संक्रिया
- A AND B
- A
- 0xCA
- B
- 0x5C
- चौड़ाई
- 8-बिट
- परिणाम कैसे पढ़ें
- अहस्ताक्षरित
- परिणाम
- 72
- हेक्स
- 0x48
- बाइनरी
- 0100 1000
- 1 पर सेट बिट
- 2
जाँच का स्रोत: स्वतंत्र गणना
8 से 64-बिट पूर्णांकों पर AND, OR, XOR, NOT, NAND, NOR, शिफ़्ट और रोटेशन करें; दशमलव, हेक्स, बाइनरी और हर बिट की सारणी देखें।
लेखक: AdminAI लेखन टूल से मसौदा तैयारअपडेट किया गया जाँचे गए उदाहरण: 8
A AND B का परिणाम 0x48 (0100 1000) है, जिसका अर्थ चिह्न सहित या अहस्ताक्षरित, दोनों में 72 है; 8 में से 2 बिट 1 हैं।
ऋणात्मक इनपुट, 2⁸ = 256 में से उनका परिमाण घटाकर रखे जाते हैं (टूज़ कॉम्प्लीमेंट)।
परिणाम बिट: केवल दोनों बिट 1 होने पर 1।
बिटवाइज़ संक्रियाएँ हर बिट स्थान पर अलग काम करती हैं: AND केवल दोनों बिट 1 होने पर 1 देता है; OR किसी एक के 1 होने पर; XOR अलग होने पर; NOT हर बिट पलटता है। शिफ़्ट पूरा पैटर्न बाएँ या दाएँ ले जाता है और खाली स्थान शून्य से भरता है। अंकगणितीय दाएँ शिफ़्ट में चिह्न बिट की प्रतियाँ भरती हैं। रोटेशन में एक सिरे से निकले बिट दूसरे सिरे पर लौटते हैं। हर परिणाम चुनी 8, 16, 32 या 64-बिट चौड़ाई तक सीमित है।
प्रोग्रामर बिट मास्क, फ़्लैग, अनुमतियाँ और हार्डवेयर रजिस्टर बनाने-जाँचने में इसका उपयोग करते हैं। डिफ़ॉल्ट 8 बिट में 0xCA AND 0x5C केवल दोनों के साझा 1 बिट रखता है: 1100 1010 AND 0101 1100 = 0100 1000, यानी 0x48 या 72। उसी युग्म का XOR 0x96 है; अहस्ताक्षरित 150 या चिह्न सहित −106।
ऋणात्मक इनपुट टूज़ कॉम्प्लीमेंट में रखे जाते हैं, इसलिए 16 बिट में −1 = 0xFFFF है।
सूत्र में U बिना चिह्न का मान, S चिह्न सहित मान, b_i स्थान i का बिट और w चौड़ाई है।
AND में दोनों बिट 1 हों तभी 1 मिलता है। OR में कोई एक 1 पर्याप्त है; XOR में अलग बिटों पर 1 आता है। 8 बिट में 0xCA AND 0x5C = 0x48 = 72 है: 1100 1010 और 0101 1100 की साझा 1 स्थितियाँ 0100 1000 हैं। इसी जोड़ी का OR 222 और XOR 150 है।
NOT हर बिट पलटता है: 8 बिट में NOT 0xCA → 0x35 = 53। चौड़ाई बताए बिना NOT का अर्थ अधूरा है; 16 बिट में परिणाम 0xFF35 होगा। यहाँ 8, 16, 32 और 64 बिट उपलब्ध हैं।
8 बिट का 0x96 unsigned में 150 है; signed में 150 − 256 = −106 है। 8 बिट की signed सीमा −128 से 127, unsigned सीमा 0 से 255 है। ऋणात्मक −3 का पैटर्न 256 − 3 = 253, यानी 0xFD है। C के N3096 ड्राफ़्ट में पूर्णांक निरूपण और शिफ़्ट के नियम दिए हैं।
इनपुट दशमलव या 0x, 0b, 0o उपसर्ग में दें। भिन्न बिटवाइज़ ऑपरेंड नहीं हैं। बिट-चौड़ाई में फिट होने वाला पूर्णांक दें; बड़े मान के लिए चौड़ाई बढ़ाएँ।
0xCA को 8 बिट में दो स्थान बाएँ करने पर 0x28 = 40 मिलता है। 202 × 4 = 808 का ऊपरी हिस्सा कटता है; निचले 8 बिट बचते हैं। लॉजिकल दायाँ शिफ़्ट बाएँ शून्य भरता है: 0x32 = 50। अर्थमेटिक दायाँ शिफ़्ट sign bit दोहराता है: 0xF2, signed में −14।
रोटेशन में किनारे से निकला बिट दूसरी ओर लौटता है। उसी पैटर्न का बायाँ रोटेशन 0x2B = 43 और दायाँ 0xB2 = 178 है। गिनती चौड़ाई से बड़ी हो तो रोटेशन उसका शेष लेता है। शिफ़्ट के सीमांत नियम भाषाओं में अलग हैं; कैलकुलेटर का परिणाम हर भाषा का निष्पादन-नियम नहीं है।
| स्थिति | दशमलव परिणाम | हेक्स परिणाम | 1 बिटों की संख्या |
|---|---|---|---|
| मूल उदाहरण | 72 | 0x48 | 2 |
| Signed XOR | -106 | 0x96 | 4 |
| ऋणात्मक अर्थमेटिक शिफ़्ट | -2 | 0xFE | 7 |
| ऋणात्मक लॉजिकल शिफ़्ट | 126 | 0x7E | 6 |
| 64-बिट सटीकता | 9007199254740992 | 0x0020000000000000 | 1 |
दोनों ऋणात्मक शिफ़्ट पंक्तियाँ −3 को एक स्थान दाएँ करती हैं। अंतिम पंक्ति में 9,007,199,254,740,993 XOR 1 = 9,007,199,254,740,992 है। सामान्य JavaScript Number पहले मान को सटीक नहीं रख सकता; इस काम में उपकरण पूर्णांकों के लिए BigInt इस्तेमाल करता है।
बिट n सेट करने के लिए x | (1 << n), साफ़ करने के लिए x & ~(1 << n) और पलटने के लिए x ^ (1 << n) है। जाँच (x & (1 << n)) != 0 से करें। भाषा की operator precedence के कारण कोष्ठक छोड़ने पर अर्थ बदल सकता है।
केवल आधार बदलना हो तो बाइनरी/हेक्स कन्वर्टर इस्तेमाल करें। नेटवर्क मास्क का उदाहरण सबनेट कैलकुलेटर में देखें।
जाँच का स्रोत: स्वतंत्र गणना
जाँच का स्रोत: स्वतंत्र गणना
जाँच का स्रोत: स्वतंत्र गणना
जाँच का स्रोत: -32 & 0xFF = 0xE0
XOR (एकांतिक OR) बिट अलग होने पर 1 और समान होने पर 0 देता है। इसलिए 0xCA XOR 0x5C = 0x96। इसके गुण x XOR x = 0 और एक ही कुंजी दो बार लगाने पर मूल मान लौटना हैं। यह फ़्लैग पलटने, पैरिटी व चेकसम निकालने और सरल कूटलेखन में काम आता है। C, Java, JavaScript और Python में चिह्न ^ है।
तार्किक दाएँ शिफ़्ट में खाली ऊपरी बिट 0 से भरते हैं। अंकगणितीय शिफ़्ट चिह्न बिट की प्रतियाँ भरता है, जिससे ऋणात्मक मान ऋणात्मक रहता है। 8 बिट में 0x80 को तार्किक रूप से 2 दाएँ खिसकाने पर 0x20 (32), लेकिन −128 को अंकगणितीय रूप से खिसकाने पर 0xE0 (−32) मिलता है। Java और JavaScript में तार्किक >>> और अंकगणितीय >> है; C में ऋणात्मक चिह्न सहित मान पर >> का व्यवहार कार्यान्वयन पर निर्भर है।
मास्क के 1 बिट वे स्थान चुनते हैं जिनमें आपकी रुचि है। AND उन्हें रखकर बाकी मिटाता है, OR उन्हें 1 करता है, XOR पलटता है और उलटे मास्क से AND उन्हें मिटाता है। x AND 0x0F निचले 4 बिट रखता है। 16 बिट में −1 AND 0x0F0F = 0x0F0F = 3855, क्योंकि −1 में सभी बिट 1 हैं। बिट n जाँचने के लिए देखें कि x AND (1 << n) शून्य से अलग है या नहीं।
n स्थान बाएँ शिफ़्ट, अहस्ताक्षरित मान को 2^n से गुणा करता है, जब तक ऊपर से कोई 1 बिट बाहर न निकले। 0x0F << 4 = 0xF0 = 240। चौड़ाई से बाहर के बिट खोते हैं, इसलिए 8 बिट में 0xFF << 4 भी 0xF0 है, 4,080 नहीं। C में प्रकार-विस्तार के बाद संकार्य की पूरी चौड़ाई या अधिक से शिफ़्ट अपरिभाषित है। x86 में 32-बिट संकार्य के लिए शिफ़्ट गिनती के निचले 5 और 64-बिट के लिए 6 बिट लिए जाते हैं।
पॉपकाउंट (जनसंख्या गणना या Hamming भार) किसी मान में 1 बिटों की संख्या है: 0x48 = 0100 1000 में 2, और 64 बिट में NOT 0 में 64। x86 में POPCNT निर्देश, C++20 में std::popcount और Java में Integer.bitCount है। यह सेट फ़्लैग गिनता है और दो मानों की Hamming दूरी popcount(a XOR b) देता है।
इस कैलकुलेटर में स्वतंत्र स्रोतों के उत्तरों वाले 8 हल किए गए उदाहरण शामिल हैं। ये परीक्षण समूह में चलते हैं और आप इन्हें यहाँ भी चला सकते हैं।