इंटेगर से बिगइन्टेगर में परिवर्तित


129

मुझे आश्चर्य हो रहा था कि क्या बिग इंटेगर के लिए किसी प्रकार के इंटेगर के चर को बदलने का कोई तरीका है। मैंने इंटेगर चर को टाइपकास्ट करने की कोशिश की, लेकिन मुझे एक त्रुटि मिली जो कि अवर्णनीय प्रकार कहती है।


12
आपने BigInteger के बारे में कुछ प्रश्न पूछे हैं जो कि Javadocs पढ़कर आसानी से हल हो जाएंगे। मेरे उत्तर में लिंक का पालन करें, और बिगइंटर के पास सभी तरीकों और निर्माणकर्ताओं की जांच करें।
jjnguy

जवाबों:


239

आपके इच्छित विधि BigInteger # valueOf (लंबी वैल) है

उदाहरण के लिए,

BigInteger bi = BigInteger.valueOf(myInteger.intValue());

स्ट्रिंग बनाना पहले अनावश्यक और अवांछित है।


2
@ जो, नहीं। यदि यह पूर्णांक है, तो जावा स्वचालित रूप से आपके लिए इसका विस्तार करेगा। (ओपी का कहना है कि उनके पास एक
इंटेगर है

यह भी काम करेगा। एक पूर्णांक पर intValue () अतिप्रवाह नहीं होगा, इसलिए valueOf के लिए कॉल बस इंट को लंबे समय तक चौड़ा करेगा। इस उदाहरण में longValue () और intValue () का उपयोग करने के बीच कोई ध्यान देने योग्य अंतर नहीं है, लेकिन यदि उन्होंने एक लॉन्ग के साथ शुरुआत की है, तो वे longValue () का उपयोग करना चाहते हैं।
jbindel

2
अमर, जो अन्य स्ट्रिंग-आधारित दृष्टिकोणों के समान होगा। यहां से बचने के लिए महत्वपूर्ण बात यह है कि स्ट्रिंग्स के किसी भी पीढ़ी या पार्सिंग।
jbindel

1
ऐसा नहीं है कि स्ट्रिंग का उपयोग करने से आपको गलत उत्तर मिलेगा, लेकिन यह कंप्यूटर के लिए अतिरिक्त काम है। उदाहरण के लिए, आप घर के अगले दरवाजे पर चलकर घर जा सकते हैं, या आप विपरीत दिशा में जा सकते हैं और दुनिया भर में लगभग सभी रास्ते जा सकते हैं। आप अभी भी वहाँ पहुँचेंगे, और यदि आपके पास एक तेज़ रॉकेट-प्लेन है, तो आपको उस समय पर ध्यान नहीं दिया जा सकता है, लेकिन यह बेकार है, और इसमें कुछ समय लगता है।
3

1
और क्या मामलों के बारे में जब myInteger शून्य है यह NPE होगा।
वाइज़र्ड

-4

आप इस तरह से कर सकते हैं:

    Integer i = 1;
    new BigInteger("" + i);

5
आप कर सकते हैं, लेकिन आप क्यों करेंगे? पहले से ही स्वीकृत उत्तर में एक बेहतर समाधान प्रस्तावित है।
कॉलिन

पूर्णांक गणित का प्रदर्शन करने के लिए स्ट्रिंग्स बनाना अधिक सीपीयू चक्रों की तुलना में आप गिनती करना चाहते हैं।
jbindel
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.