টুল
গাইড

ভিত্তি / র‍্যাডিক্স রূপান্তরক

রূপান্তর

BigInt-এর সাহায্যে ২–৬২ ভিত্তির মধ্যে পূর্ণসংখ্যা রূপান্তর করুন, যাতে বড় সংখ্যার সম্পূর্ণ নির্ভুলতা বজায় থাকে।

100% ক্লায়েন্ট-সাইড কোনো ব্যাকএন্ড নেই
→
আউটপুট
দশমিক
এই পৃষ্ঠায়

ভিত্তি / র‍্যাডিক্স রূপান্তরক কী?#

প্রতিটি পূর্ণসংখ্যা একই সংখ্যা; কেবল তার বানান ভিত্তি অনুযায়ী বদলায়। দশমিকে 255, হেক্সাডেসিমালে ff, বাইনারিতে 11111111, এবং অক্টালে 377 — চারটি স্ট্রিং একই পরিমাণের জন্য। একটি র‍্যাডিক্স রূপান্তরক একটি বানানকে অন্যটিতে অনুবাদ করে — এবং এটি parseInt-এর বদলে একটি আসল টুল হওয়ার কারণ হলো JavaScript-এর Number 2^53-এর পরে (প্রায় ১৬ দশমিক অঙ্ক) নীরবে নির্ভুলতা হারায়, তাই 18446744073709551616-এর মতো একটি ৬৪-বিট শনাক্তকারীকে সাধারণ Number দিয়ে রূপান্তর করলে বিনা সতর্কবার্তায় আপনাকে একটি ভিন্ন সংখ্যা ফিরিয়ে দেয়।

এই পৃষ্ঠাটি শুরু থেকে শেষ পর্যন্ত BigInt-ভিত্তিক, তাই একটি ইচ্ছামাপ আকারের পূর্ণসংখ্যা প্রতিটি রূপান্তরে সম্পূর্ণ নির্ভুলতা বজায় রাখে। এটি ২ থেকে ৬২ পর্যন্ত ভিত্তি সমর্থন করে, ক্যানোনিকাল অঙ্কের বর্ণমালা 0-9, তারপর a-z, তারপর A-Z ব্যবহার করে। সুবিধার্থে, ২ থেকে ৩৬ পর্যন্ত ভিত্তি কেস-সংবেদনশীল নয় (আপনি hex ২৫5-এর জন্য FF টাইপ করতে পারেন), যখন ৩৭ থেকে ৬২ পর্যন্ত ভিত্তি কেস-সংবেদনশীল — কারণ ভিত্তি ৬২-এ ছোট হাতের a এবং বড় হাতের A দুটি সত্যিকারের আলাদা অঙ্ক (১০ এবং ৩৬)।

কীভাবে ব্যবহার করবেন#

  1. যে মান-টি রূপান্তর করতে চান তা টাইপ করুন। পৃষ্ঠাটি 255 দিয়ে শুরু হয়।
  2. এই ভিত্তি থেকে সেট করুন আপনার মান বর্তমানে যে ভিত্তিতে লেখা (ড্রপডাউনগুলো ২ থেকে ৬২ সরবরাহ করে; ডিফল্ট ১০, দশমিক)।
  3. এই ভিত্তিতে সেট করুন আপনি যে ভিত্তি চান (ডিফল্ট ১৬, হেক্সাডেসিমাল)। এগুলোর মধ্যের তীরটি কেবল একটি দৃশ্যমান ইঙ্গিত।
  4. আউটপুট বক্সটি রূপান্তরিত বানানটি লাইভ দেখায়, এবং নিচের দশমিক সারিটি একই মান ভিত্তি ১০-এ দেখায় — দুটি অপরিচিত ভিত্তির মধ্যে রূপান্তর করার সময় একটি কার্যকর যাচাই।
  5. নমুনা ডিফল্ট পুনরায় লোড করে, মুছুন ফিল্ড খালি করে। নির্বাচিত ভিত্তির জন্য একটি অবৈধ অঙ্ক স্ট্যাটাস লাইনে রিপোর্ট করা হয় (ভিত্তি ৮-এ 8 টাইপ করলে, বা ভিত্তি ১৬-এ g টাইপ করলে নীরবে অর্থহীন ফলাফল তৈরি করবে না)।

প্রধান বৈশিষ্ট্য#

  • BigInt নির্ভুলতা। রূপান্তর ইচ্ছামাপ-নির্ভুলতার পূর্ণসংখ্যায় চলে, তাই 2^64 এবং তার বেশি হুবহু রাউন্ড-ট্রিপ করে। কোনো 2^53 খাড়া নেই, কোনো ফ্লোটিং-পয়েন্ট আসন্ন নেই।
  • ভিত্তি ২ থেকে ৬২। বাইনারি, অক্টাল, দশমিক, hex, base32, base36, base58-স্টাইলের বর্ণমালা এবং সম্পূর্ণ base62 ঢেকে রাখে — যে সীমাটি বাস্তব সিস্টেমগুলো ব্যবহার করে।
  • কেস-সচেতন পার্সিং। ভিত্তি ২–৩৬ সুবিধার্থে যেকোনো কেস গ্রহণ করে; ভিত্তি ৩৭–৬২ কেসকে তাৎপর্যপূর্ণ হিসেবে বিবেচনা করে যাতে a এবং A আলাদা অঙ্ক হিসেবে থাকে, ক্যানোনিকাল ৬২-প্রতীকের বর্ণমালার সাথে মিলে যায়।
  • অঙ্ক-গ্রুপের আন্ডারস্কোর সহ্য করা হয়। আপনি 1_000 পেস্ট করতে পারেন এবং এটি 1000 হিসেবে পড়া হয় — একই রীতি অনেক প্রোগ্রামিং ভাষা পাঠযোগ্যতার জন্য ব্যবহার করে।
  • চিহ্ন-সচেতন। ঋণাত্মক মান সঠিকভাবে রূপান্তরিত হয়; বিয়োগ চিহ্ন প্রতিটি ভিত্তিতে সংরক্ষিত থাকে।

ব্যবহারের উদাহরণ#

ডিফল্ট 255 দিয়ে, এই ভিত্তি থেকে 10, এই ভিত্তিতে 16, প্যানেল দেখায়:

Output:   ff
Decimal:  255

এই ভিত্তিতে 2-তে পরিবর্তন করলে আপনি 11111111 পান — আটটি বিট, ঠিক এক বাইটে যে মানটি বসে, যা কারণ ff কালার কোড এবং বাইট ডাম্পে এত পরিচিত দেখতে পাওয়া যায়।

BigInt-এর প্রকৃত কারণ একটি ৬৪-বিট মান নিয়ে আসে। 18446744073709551616 (যা 2^64) টাইপ করুন, এই ভিত্তি থেকে 10, এই ভিত্তিতে 16:

Output:   10000000000000000
Decimal:  18446744073709551616

এটি 1-এর পরে ষোলোটি শূন্য — ঠিক 2^64 হেক্সে। JavaScript Number-এ নির্মিত একটি রূপান্তরক শুরু হওয়ার আগেই ইনপুটটিকে 18446744073709552000-এ রাউন্ড করে ফেলত, এবং আপনি কখনো টেরও পেতেন না। এটি এই ভিত্তি থেকে 16 / এই ভিত্তিতে 10-এ ফিরে রাউন্ড-ট্রিপ করুন এবং মূল দশমিকটি অপরিবর্তিত ফিরে আসে — এটিই সেই পরীক্ষা যা প্রমাণ করে কোনো নির্ভুলতা হারানো হয়নি।

প্রশ্নোত্তর#

FF hex-এর জন্য কাজ করে কিন্তু ভিত্তি ৬২-এর জন্য কেন নয়?#

ভিত্তি ২ থেকে ৩৬ একটি মাত্র অক্ষর সীমা ভাগ করে (a–z, ১০–৩৬-এ ম্যাপ করা), তাই কেস কোনো ব্যাপার না এবং FF = ff = 255। ভিত্তি ৩৭ থেকে উপরে বর্ণমালার ২৬-এর বেশি অক্ষর প্রয়োজন, তাই এটি বড় হাতের অক্ষরে প্রসারিত হয়: a=10, b=11 … z=35, A=36, B=37 … Z=61। উভয় কেস ব্যবহারে চলে আসলে, a এবং A আলাদা অঙ্ক, তাই পার্সারকে অবশ্যই কেস সংরক্ষণ করতে হবে।

আমি ভিত্তির জন্য অবৈধ একটি অঙ্ক টাইপ করলে কী হয়?#

আপনি একটি স্পষ্ট ত্রুটি পান, ভুল উত্তর নয়। এই ভিত্তি থেকে 8 (অক্টাল) সেট করা অবস্থায় 8 বা 9 টাইপ করলে, বা এই ভিত্তি থেকে 16 (hex) সেট করা অবস্থায় g টাইপ করলে প্রত্যাখ্যান করা হয়, কারণ সেই অক্ষরগুলো সেই ভিত্তিতে বৈধ অঙ্ক নয়। স্ট্যাটাস লাইন আপনাকে ত্রুটিপূর্ণ অক্ষরটি জানায়।

আমি অন্য ভিত্তিতে রূপান্তর করছি, তবু টুল কেন একটি দশমিক সারি দেখায়?#

কারণ দশমিক সেই ভিত্তি যেখানে মানুষ চিন্তা করে, তাই এটি স্বাভাবিক যাচাই। আপনি ভিত্তি-58 q-কে ভিত্তি-16-এ রূপান্তর করে 1a দেখলে, দশমিক সারি (26) আপনাকে নিশ্চিত করতে দেয় “হ্যাঁ, ৫৮-তম-ইশ প্রতীকটি সত্যিই ছাব্বিশ বোঝাত” — নিজে পাটিগণিত না করেই।

এটি কি 3.14-এর মতো ভগ্নাংশ সংখ্যা পরিচালনা করে?#

না — এই রূপান্তরক কেবল পূর্ণসংখ্যার উপর কাজ করে। একটি ভগ্নাংশ অংশের র‍্যাডিক্স রূপান্তর একটি আলাদা সমস্যা (এটি বেশিরভাগ ভিত্তিতে অসীমভাবে পুনরাবৃত্তিমূলক সম্প্রসারণ তৈরি করে, যেভাবে 1/3 দশমিকে করে), এবং তা নীরবে ছোট করা বিভ্রান্তিকর হবে। যেকোনো আকারের পূর্ণসংখ্যার মানের জন্য, রূপান্তর নির্ভুল এবং তাৎক্ষণিক।