समय/संख्याएं

बिटवाइज़ ऑपरेशन

दी गई रेंज (8/16/32/64 बिट) के इंटीजर पर AND/OR/XOR/NAND/NOR/XNOR/NOT और शिफ्ट, किसी भी नंबर सिस्टम में।

Bitwise operations work directly on a number's individual bits rather than its value as a whole — the basis for permission flags, network protocols, and low-level optimization.

How to use it

Common uses

Things to keep in mind

The result of NOT and shifts depends on the chosen bit width — the same number gives a different result at 8-bit versus 32-bit width because of the different number of bits involved.

XOR is often used to toggle a flag — applying XOR twice with the same value returns the original.

इस टूल के बारे में लेख: बिटवाइज़ ऑपरेशन: बिट लेवल पर AND, OR और XOR कैसे काम करते हैं

अक्सर पूछे जाने वाले प्रश्न

AND, OR, XOR, NAND, NOR, XNOR और NOT में क्या अंतर है?

AND तभी 1 देता है जब दोनों बिट्स 1 हों, OR तब 1 देता है जब कम से कम एक 1 हो, और XOR तब 1 देता है जब बिट्स अलग हों। NAND/NOR/XNOR इनके निषेध हैं, और NOT एकल ऑपरेंड के हर बिट को उलट देता है।

संख्या की बिट चौड़ाई और चिह्न कैसे संभाला जाता है?

8/16/32/64 बिट्स की चौड़ाई चुनें — ऑपरेशन्स और शिफ्ट्स उसी सीमा में होते हैं। ऋणात्मक संख्याएं टू'ज़ कॉम्प्लीमेंट में दर्शाई जाती हैं, इसलिए NOT या शिफ्ट का परिणाम अप्रत्याशित लग सकता है अगर आप दशमलव नोटेशन के आदी हैं।

लेफ्ट शिफ्ट और राइट शिफ्ट में क्या अंतर है?

लेफ्ट शिफ्ट (<<) दाईं तरफ शून्य जोड़ता है, प्रभावी रूप से शिफ्ट मात्रा की घात में 2 से गुणा करता है। राइट शिफ्ट लॉजिकल (बाईं तरफ शून्य जोड़ता है) या अरिथमेटिक (साइन बिट सुरक्षित रखता है) हो सकता है — प्रकार चुने गए मोड पर निर्भर करता है।

"if (a & b == c)" जैसा एक्सप्रेशन अक्सर उम्मीद के मुताबिक क्यों काम नहीं करता?

ज़्यादातर लैंग्वेजेस में तुलना ऑपरेटर == की प्रायोरिटी बिटवाइज़ & से ज़्यादा होती है, इसलिए एक्सप्रेशन "a & (b == c)" की तरह गणना होता है, न कि जैसा लेखक आमतौर पर उम्मीद करता है। इस जाल से बचने के लिए बिटवाइज़ ऑपरेशन्स को हमेशा स्पष्ट कोष्ठकों में रखें।

अलग-अलग बूलियन वेरिएबल्स की जगह बिटवाइज़ फ्लैग्स का इस्तेमाल क्यों किया जाता है?

एक ही संख्या में फ्लैग्स का सेट स्टोर और ट्रांसमिट करना ज़्यादा कॉम्पैक्ट होता है (जैसे नेटवर्क प्रोटोकॉल या फ़ाइल फ़ॉर्मैट में), और AND/OR/XOR के ज़रिए किसी ख़ास फ्लैग को जांचना या बदलना एक तेज़ ऑपरेशन में हो जाता है।

लेख: समय/संख्याएं

Unix टाइम: कंप्यूटर 1970 से समय क्यों गिनते हैं

1 जनवरी 1970 ज़्यादातर कंप्यूटर सिस्टम के लिए समय का रेफ़रेंस पॉइंट क्यों बना।

Cron एक्सप्रेशन: टास्क शेड्यूल कैसे डिकोड करें

*/15 * * * * जैसे एक्सप्रेशन को कैसे डिकोड करें और ठीक-ठीक जानें कि टास्क कब चलेगा।

नंबर सिस्टम: बाइनरी, ऑक्टल और हेक्साडेसिमल क्यों मौजूद हैं

CSS में #FF5733 रंग डेसिमल की जगह हेक्साडेसिमल अंकों में क्यों लिखा जाता है।

डेट डिफ़: दिन गिनना दिखने से ज़्यादा मुश्किल क्यों है

लीप ईयर की वजह से तारीख़ों को सीधे घटाना ग़लत नतीजा क्यों दे सकता है।

उम्र कैलकुलेशन: यह सिर्फ़ साल घटाना क्यों नहीं है

जन्म का साल सीधे घटाने से असली उम्र से एक साल ज़्यादा उम्र क्यों मिल सकती है।

टाइम ज़ोन: UTC, GMT जैसा क्यों नहीं है

UTC साल में दो बार क्यों नहीं बदलता, जबकि लंदन का समय (GMT/BST) बदलता है।

ड्यूरेशन कैलकुलेटर: घंटे, मिनट और सेकंड सही तरीक़े से कैसे जोड़ें

मिनट और सेकंड जोड़ते समय बचे हुए हिस्से को अगले स्थान पर "कैरी" क्यों करना पड़ता है, बिल्कुल डेसिमल जोड़ की तरह।

ISO 8601 Duration: स्टैंडर्ड फ़ॉर्मैट में अवधि कैसे लिखें

PT1H30M का मतलब "1 घंटा 30 मिनट" क्यों है, "1 मिनट 30 घंटे" नहीं।

सप्ताह नंबर: अलग-अलग देश हफ़्तों को अलग तरीक़े से क्यों गिनते हैं

ISO 8601 स्टैंडर्ड के हिसाब से 1 जनवरी कभी-कभी पिछले साल के 52वें या 53वें हफ़्ते में क्यों आता है।

रोमन अंक: बिना शून्य और स्थानीय मान वाला सिस्टम कैसे काम करता है

IV का मतलब 4 क्यों है, 6 नहीं, और रोमन अंकों में घटाव का नियम कैसे काम करता है।

IEEE 754: कोड में 0.1 + 0.2, 0.3 के बराबर क्यों नहीं होता

लगभग हर प्रोग्रामिंग लैंग्वेज में 0.1 + 0.2 का रिज़ल्ट 0.30000000000000004 क्यों दिखता है।

नंबर टू वर्ड्स: अंकों को शब्दों में क्यों बदलें

बैंक डॉक्यूमेंट्स में रक़म अंकों और शब्दों दोनों में एक साथ क्यों लिखी जाती है।