পূর্ণসংখ্যার থেকে বিগইন্টিজারে রূপান্তর করা


129

আমি ভাবছিলাম যে কোনও ধরণের পূর্ণসংখ্যার ভেরিয়েবলকে বিগইনটেইজারে রূপান্তর করার কোনও উপায় আছে কিনা। আমি পূর্ণসংখ্যার ভেরিয়েবল টাইপকাস্ট করার চেষ্টা করেছি, তবে আমি একটি ত্রুটি পেয়েছি যা অবিচ্ছিন্ন প্রকার বলে।


12
আপনি বিগইন্টিজার সম্পর্কে কয়েকটি প্রশ্ন জিজ্ঞাসা করেছেন যা জাভাদোকগুলি পড়ে মোটামুটি সহজেই সমাধান করা হবে। আমার উত্তরের লিঙ্কটি অনুসরণ করুন, এবং বিগইন্টিজারের সমস্ত পদ্ধতি এবং নির্মাতা পরীক্ষা করে দেখুন।
jjnguy

উত্তর:


239

আপনি যে পদ্ধতিটি চান তা হ'ল বিগইন্টেগার # মানআফ (লং ভ্যাল)

যেমন,

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

প্রথমে একটি স্ট্রিং তৈরি করা অপ্রয়োজনীয় এবং অনাকাঙ্ক্ষিত।


2
@ মিশ, না এটি যদি পূর্ণসংখ্যা হয় তবে জাভা আপনার জন্য এটি স্বয়ংক্রিয়ভাবে প্রসারিত হবে। (ওপি জানিয়েছে যে তার একটি পূর্ণসংখ্যা রয়েছে)
jjnguy

যে ঠিক পাশাপাশি কাজ করবে। একটি পূর্ণসংখ্যার উপর intValue () উপচে পড়বে না, সুতরাং মানOf- এ কলটি কেবলমাত্র দীর্ঘকে দীর্ঘতর করবে। এই উদাহরণে LongValue () এবং intValue () ব্যবহারের মধ্যে কোনও লক্ষণীয় পার্থক্য নেই, তবে যদি তিনি একটি দীর্ঘ দিয়ে শুরু করেন তবে তিনি লংভ্যালু () ব্যবহার করতে চান।
jbindel

2
আমার, এটি স্ট্রিং-ভিত্তিক অন্যান্য পদ্ধতির মতো হবে। এখানে এড়ানোর মূল বিষয় হ'ল স্ট্রিংগুলির কোনও প্রজন্ম বা পার্সিং।
jbindel

1
স্ট্রিং ব্যবহার করা আপনাকে ভুল উত্তর দেয় এমন নয়, তবে এটি কম্পিউটারের জন্য অতিরিক্ত কাজ। উদাহরণস্বরূপ, আপনি পাশের বাড়িতে হাঁটতে পাশের বাড়িতে যেতে পারেন, বা আপনি বিপরীত দিকে যেতে পারেন এবং সারা বিশ্ব জুড়ে প্রায় যেতে পারেন। আপনি এখনও সেখানে পৌঁছে যাবেন এবং যদি আপনার কাছে দ্রুত রকেট-বিমান থাকে তবে আপনি এটি যে সময় নিয়েছিলেন তা খেয়াল করতে পারেন না তবে এটি অপব্যয়, এবং এটি কিছুটা বেশি সময় নেয়।
jbindel

1
এবং মাই ইন্টেজার যখন নাল হয় তখন কেসগুলি কী হবে এটি এনপিই হবে।
উইজার্ড

-4

আপনি এইভাবে করতে পারেন:

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

5
আপনি পারবেন, তবে আপনি কেন? ইতিমধ্যে গৃহীত উত্তরে আরও একটি ভাল সমাধান প্রস্তাব করা হয়েছে।
কলিন

পূর্ণসংখ্যার গণিত সম্পাদনের জন্য স্ট্রিং তৈরি করা আপনার গণনার চেয়ে বেশি সিপিইউ চক্রকে অপচয় করে।
jbindel
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.