MCP के माध्यम से कनेक्ट करें →

गणना दर्ज करें

सूत्र (फॉर्मूला)

विज्ञापन

परिणाम

शिफ्ट किया गया परिणाम
64
दशमलव मान
इनपुट संख्या 16
शिफ्ट की मात्रा (बिट्स) 2

बिट शिफ्ट क्या है?

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

8 बाइनरी अंक बक्सों की पंक्ति, तीर बिट्स को बाएँ और दाएँ जाते दिखाते हैं
बिट शिफ्ट हर बिट को एक निश्चित संख्या में स्थान बाएँ या दाएँ खिसकाता है।

इस कैलकुलेटर का उपयोग कैसे करें

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

फ़ॉर्मूला समझें

एक स्थान की हर लेफ्ट शिफ्ट संख्या को दोगुना कर देती है, इसलिए k स्थानों तक बाएँ खिसकाने पर संख्या 2k से गुणा हो जाती है: $$\text{Result} = \text{Number (n)} \ll \text{Shift (k)} = n \times 2^{k}$$। एक स्थान की हर राइट शिफ्ट संख्या को आधा कर देती है (दशमलव हिस्सा हटाकर), इसलिए k स्थानों की राइट शिफ्ट 2k से पूर्णांक भाग के बराबर होती है: $$\text{Result} = \text{Number (n)} \gg \text{Shift (k)} = \left\lfloor \frac{n}{2^{k}} \right\rfloor$$। यही वजह है कि हार्डवेयर पर शिफ्ट, गुणा या भाग की तुलना में कहीं ज़्यादा सस्ती (तेज़) होती हैं।

विज्ञापन
एक स्थान बायाँ शिफ्ट बिट्स को बाएँ जाते दिखाता है और दाईं ओर शून्य भर जाता है; मान दोगुना हो जाता है
एक स्थान बाएँ शिफ्ट करने पर मान दोगुना हो जाता है; दाएँ शिफ्ट करने पर आधा।

हल किया हुआ उदाहरण

मान लीजिए n = 16 है और इसे k = 2 से बाएँ खिसकाना है। बाइनरी में 16 का मान 10000 है। दो बार बाएँ खिसकाने पर अंत में दो शून्य जुड़ जाते हैं: 1000000, यानी 64। गणितीय रूप से, $$16 \times 2^{2} = 16 \times 4 = 64$$। उलटा करें तो \(64 \gg 2 = \left\lfloor 64 / 4 \right\rfloor = 16\), जो मूल मान लौटा देता है।

विज्ञापन

दो की शक्तियों संदर्भ तालिका

बाईं ओर \(k\) द्वारा स्थानांतरण एक संख्या को \(2^k\) से गुणा करता है; दाईं ओर \(k\) द्वारा स्थानांतरण को \(2^k\) से विभाजित करता है (पूर्णांकों के लिए शेषफल को त्यागते हुए)। दिए गए स्थानांतरण राशि के लिए तुरंत गुणक या भाजक को पढ़ने के लिए इस तालिका का उपयोग करें।

स्थानांतरण \(k\) \(2^k\) (दशमलव) \(\ll k\) / \(\gg k\) का अर्थ
0 1 कोई परिवर्तन नहीं
1 2 \(\times 2\) / \(\div 2\)
2 4 \(\times 4\) / \(\div 4\)
3 8 \(\times 8\) / \(\div 8\)
4 16 \(\times 16\)
5 32 \(\times 32\)
6 64 \(\times 64\)
7 128 \(\times 128\)
8 256 \(\times 256\) (1 बाइट)
9 512 \(\times 512\)
10 1,024 \(\times 1024\) (1 किबिबाइट)
11 2,048 \(\times 2048\)
12 4,096 \(\times 4096\)
13 8,192 \(\times 8192\)
14 16,384 \(\times 16384\)
15 32,768 \(\times 32768\)
16 65,536 \(\times 65536\) (2 बाइट)
17 131,072
18 262,144
19 524,288
20 1,048,576 \(\times\) 1 मेबिबाइट
32 4,294,967,296 32-बिट सीमा
63 9,223,372,036,854,775,808 64-बिट हस्ताक्षरित पूर्णांक का शीर्ष बिट

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

क्या लेफ्ट शिफ्ट से कभी डेटा खो सकता है? हाँ — पूर्णांक की चौड़ाई से बाहर खिसके बिट्स हटा दिए जाते हैं (ओवरफ़्लो)। 64 बिट के भीतर यह कैलकुलेटर मान को सुरक्षित रखता है।

राइट शिफ्ट में ऋणात्मक संख्याओं के साथ क्या होता है? यह कैलकुलेटर अंकगणितीय (साइन्ड) राइट शिफ्ट का उपयोग करता है, इसलिए साइन बिट सुरक्षित रहता है और ऋणात्मक संख्याएँ ऋणात्मक ही रहती हैं।

गुणा या भाग के बजाय शिफ्ट क्यों इस्तेमाल करें? अधिकांश CPU पर बिट शिफ्ट सिंगल-साइकल ऑपरेशन होते हैं, जिससे ये दो की घातों से गुणा या भाग करने का बेहद तेज़ तरीका बन जाते हैं।

अंतिम अपडेट: