2012-07-13 18 views
6

संभव डुप्लिकेट:
Use of caret symbol(^) in Ruby^रूबी में किस लिए प्रयोग किया जाता है?

तो मैं कुछ कोड के साथ चारों ओर खेल रहा था और मैं शक्ति ऑपरेटर के साथ चारों ओर खेलने की कोशिश की। तो मैंने सोचा कि शायद मैं इस उद्देश्य के लिए कैरट (^) इस्तेमाल कर सकते हैं, लेकिन में उपयोग करने के बाद:

for i in 0..10 
    puts "#{i} #{1^i}\n" 
end 

मैं वास्तव में कुछ अजीब परिणाम

0 - 1 
1 - 0 
2 - 3 
3 - 2 
4 - 5 
5 - 4 
6 - 7 
7 - 6 
8 - 9 
9 - 8 
10 - 11 

केवल पैटर्न मैं देख रहा हूँ है मिला - एक विषम संख्या पर 1 और +1 सम संख्या पर है, लेकिन फिर जब मैं कोशिश:

for i in 0..10 
    puts "#{i} #{2^i}\n" 
end 

मैं मिलता है:

0 - 2 
1 - 3 
2 - 0 
3 - 1 
4 - 6 
5 - 7 
6 - 4 
7 - 5 
8 - 10 
9 - 11 
10 - 8 

wth! तो फिर मैं 4^i तक जा रहा था और उन्हें लगाया गया था, 1^i & 3^idecent patterns के साथ बाहर आया लेकिन 2^i & 4^i केवल 11 प्लॉटिंग पॉइंट्स के साथ कोई दृश्य पैटर्न (हालांकि अत्यधिक संभावना नहीं) के साथ जगह पर था, इसलिए मैं आपसे आया हूं और गेंट्स आपको पूछ रहे हैं:

पृथ्वी पर क्या है ^ के लिए उपयोग किया जाता है ?!

+0

मुझे लगता है कि यह एक्सओआर ऑपरेटर है। – Gumbo

+1

कभी-कभी मुझे SO समुदाय नहीं मिलता है। वह मूर्खतापूर्ण क्यों है http://stackoverflow.com/questions/11464250/using-in-ruby प्रश्न +2 अपवॉट्स मिला, जबकि यह एक डाउनवॉट्स जारी है? – ted

+0

@ted प्रश्न खराब शोध के लिए डाउनवॉटेड हो गए हैं, पर्याप्त जानकारी शामिल करने में विफल रहे हैं, या समझने में मुश्किल हो रही है। यह पूर्व का मामला है, क्योंकि "कैरेट ऑपरेटर रूबी" के लिए एक त्वरित वेब खोज ने प्रश्न का उत्तर दिया होगा (एक स्टैक ओवरफ्लो प्रश्न के साथ, कम नहीं)। – coreyward

उत्तर

18

अधिकांश प्रोग्रामिंग भाषाओं में, ^ एक्सओआर ऑपरेटर (Exclusive Or in Wikipedia) है। एक्सओआर सीपीयू में सबसे आवश्यक संचालन में से एक है, यह अक्सर शून्य रजिस्टरों के लिए नियोजित होता है (a ^= a के बारे में सोचें) क्योंकि यह तेज़ है और इसमें एक छोटा ऑपोड है।

पावर फ़ंक्शन के लिए, आपको उदा। ** (जैसे गहरे लाल रंग का में), java.lang.Math.pow, math.pow, pow आदि

वास्तव में, मैं ^ का उपयोग करता है एक प्रोग्रामिंग भाषा का नाम नहीं कर सकता है। इसका उपयोग स्वरूपण के लिए लाटेक्स में किया जाता है (सुपरस्क्रिप्ट के रूप में, बिजली कार्य नहीं, तकनीकी रूप से)। लेकिन मैं देखता हूं कि दो प्रकार ** हैं (क्योंकि पावर फ़ंक्शन सीधे गुणा से संबंधित है) और pow(base, exp)

ध्यान दें कि आप बदलावों का उपयोग करके 2 तेज की पूर्णांक शक्तियों की गणना कर सकते हैं।

+4

यदि आप रूबी प्रश्न का उत्तर देने जा रहे हैं, तो रूबी सिंटैक्स देने के लिए बुद्धिमान हो सकता है, जावा एट अल नहीं - रिकॉर्ड के लिए रूबी में एक्सपोनेंट ऑपरेटर '**' है। – coreyward

+0

मैंने कुछ समय पहले केवल रूबी का उपयोग किया था। यह व्यवहार एक्सओआर स्पष्ट विचार था। धन्यवाद, मैं इसे जोड़ दूंगा। –

+1

'3 << 4 बेहद तेज़ है, 3 ** 16 से बहुत तेज़ है 'क्या आपने इसे चेक किया है? मुझे लगता है कि पाइथन और रूबी जैसी द्विभाषी भाषाएं बाइनरी गुणा/शक्ति लागू करती हैं; – ted

संबंधित मुद्दे