जावा में ^ ऑपरेटर
^
जावा में एक्सक्लूसिव या ("xor") ऑपरेटर है।
5^6
उदाहरण के रूप में लेते हैं :
(decimal) (binary)
5 = 101
6 = 110
------------------ xor
3 = 011
बिटवाइज़ ( JLS 15.22.1 ) और तार्किक ( JLS 15.22.2 ) के लिए सत्य तालिका :
^ | 0 1 ^ | F T
--+----- --+-----
0 | 0 1 F | F T
1 | 1 0 T | T F
अधिक सरल रूप से, आप एक्सोर को "यह या वह, लेकिन दोनों नहीं " के रूप में भी सोच सकते हैं ।
यह सभी देखें
जावा में घातांक
पूर्णांक घातांक के रूप में, दुर्भाग्य से जावा में ऐसा कोई ऑपरेटर नहीं है। आप double Math.pow(double, double)
(परिणाम को कास्टिंग कर सकते हैं )int
यदि आवश्यक तो )।
दो की कुछ शक्तियों की गणना करने के लिए आप पारंपरिक बिट-शिफ्टिंग ट्रिक का भी उपयोग कर सकते हैं। यही है, के (1L << k)
लिए दो k kth शक्ति है k=0..63
।
यह सभी देखें
मर्ज नोट : यह उत्तर एक अन्य प्रश्न से मिलाया गया था, जहांएक प्रोग्रामिंग अभ्यास के रूप मेंउपयोग किए बिनास्ट्रिंग"8675309"
कोपरिवर्तित करने के लिए प्रतिपादक का उपयोग करने का इरादा था(अब से घातांक को दर्शाता है)। ओपी का इरादा गणना करना था; इस उत्तर के अगले भाग से पता चलता है कि इस कार्य के लिए प्रतिपादक आवश्यक नहीं है।int
Integer.parseInt
^
8*10^6 + 6*10^5 + 7*10^4 + 5*10^3 + 3*10^2 + 0*10^1 + 9*10^0 = 8675309
हॉर्नर की योजना
अपनी विशिष्ट आवश्यकता को संबोधित करते हुए , आपको वास्तव में 10. की विभिन्न शक्तियों की गणना करने की आवश्यकता नहीं है। आप हॉर्नर की योजना को क्या कह सकते हैं , जो न केवल सरल है बल्कि कुशल भी है।
चूंकि आप इसे एक व्यक्तिगत अभ्यास के रूप में कर रहे हैं, इसलिए मैं जावा कोड नहीं दूंगा, लेकिन यहां मुख्य विचार है:
8675309 = 8*10^6 + 6*10^5 + 7*10^4 + 5*10^3 + 3*10^2 + 0*10^1 + 9*10^0
= (((((8*10 + 6)*10 + 7)*10 + 5)*10 + 3)*10 + 0)*10 + 9
यह पहली बार में जटिल लग सकता है, लेकिन यह वास्तव में नहीं है। आपने मूल रूप से बाएं से दाएं अंकों को पढ़ा है, और आप अगले अंक को जोड़ने से पहले अपने परिणाम को 10 से गुणा करते हैं।
तालिका के रूप में:
step result digit result*10+digit
1 init=0 8 8
2 8 6 86
3 86 7 867
4 867 5 8675
5 8675 3 86753
6 86753 0 867530
7 867530 9 8675309=final