ইন্টিজার বেস কনভার্টার

2 থেকে 64 পর্যন্ত যেকোনো বেসের মধ্যে পূর্ণসংখ্যা রূপান্তর করুন। বাইনারি, অক্টাল, দশমিক, হেক্সাডেসিমাল, বেস36, বেস58 এবং বেস64 একসাথে, নির্বিচারে-নির্ভুলতা BigInt সমর্থন সহ।

2 থেকে 64 পর্যন্ত যেকোনো দুটি বেসের মধ্যে একটি পূর্ণসংখ্যা রূপান্তর করুন। একটি মান লিখুন, সেটি যে বেসে লেখা তা বেছে নিন, এবং প্রতিটি সাধারণ উপস্থাপনা সাথে সাথে আপডেট হবে। রূপান্তর JavaScript BigInt ব্যবহার করে, তাই 2^53-এর অনেক বেশি সংখ্যাও সম্পূর্ণ নির্ভুলতা বজায় রাখে।

অবস্থানভিত্তিক সংখ্যা বেস বোঝা

একটি বেস আসলে কী বোঝায়

অবস্থানভিত্তিক ব্যবস্থায় বেস (বা রেডিক্স) বলে দেয় প্রতিটি স্থানের মূল্য কত। বেস 10-এ 237 অঙ্কগুলো মানে 2x100 + 3x10 + 7x1। বেস 16-এ একই অঙ্ক স্ট্রিং মানে 2x256 + 3x16 + 7 = 567। সংখ্যাটিকে রূপান্তর করলে সংখ্যার কিছুই পরিবর্তন হয় না, শুধু স্বরলিপি পরিবর্তন হয়।

অঙ্কের বর্ণমালা

একটি বেস-N ব্যবস্থায় Nটি স্বতন্ত্র প্রতীক প্রয়োজন। অঙ্ক 0-9 প্রথম দশটি ঢেকে দেয়, তারপর অক্ষরগুলো দখল নেয়: a হলো 10, b হলো 11, এবং এভাবে z পর্যন্ত 35-এ। বেস 36-এর উপরে বর্ণমালা বড় হাতের অক্ষর এবং শেষে +/ দিয়ে চলতে থাকে, যা এই টুলটি ব্যবহার করে। বেস 36 পর্যন্ত কেস-সংবেদনশীল না ভেবে নেওয়া হয় কারণ এটি সর্বজনীন কনভেনশন; 36-এর উপরে কেস তাৎপর্যপূর্ণ হয়ে ওঠে।

প্রতিটি বেস কোথায় ব্যবহৃত হয়

  • বেস 2 সরাসরি হার্ডওয়্যারের সাথে ম্যাপ করে। রেজিস্টার কনটেন্ট, বিট মাস্ক এবং পারমিশন ফ্ল্যাগ বাইনারিতে বোঝা সবচেয়ে সহজ।
  • বেস 8 বিটগুলো তিন দলে ভাগ করে, এই কারণেই Unix ফাইল মোড যেমন 755 অক্টাল।
  • বেস 16 বিটগুলো চারে ভাগ করে, তাই একটি হেক্স অঙ্ক একটি নিবলের সমান। মেমরি অ্যাড্রেস, কালার কোড এবং হ্যাশ সবই এটি ব্যবহার করে।
  • বেস 36 হল সবচেয়ে ঘন বেস যা DNS লেবেলের মতো কেস-সংবেদনশীল নয় এমন ব্যবস্থায় টিকে থাকে।
  • বেস 58 হলো বেস 62 বিয়োগ সেই অক্ষরগুলো যা ভুল পড়া সহজ: 0, O, I এবং l। বিটকয়েন অ্যাড্রেস এবং অনেক শর্ট-লিংক পরিষেবা এটি ব্যবহার করে।
  • বেস 64 তিনটি বাইটকে চারটি প্রিন্টযোগ্য অক্ষরে এনকোড করে এবং টেক্সট-শুধু চ্যানেলের মাধ্যমে বাইনারি ডেটা সরানোর আদর্শ উপায়।

নির্ভুলতা

নেটিভ JavaScript সংখ্যা 2^53-এর উপরে নির্ভুলতা হারায়। এই কনভার্টার সম্পূর্ণরূপে BigInt দিয়ে কাজ করে, তাই একটি 200-অঙ্কের দশমিক মান নীরবে রাউন্ডিং ছাড়াই বাইনারিতে রূপান্তরিত হয়। ঋণাত্মক মান সমর্থিত; একটি অগ্রবর্তী বিয়োগ চিহ্ন সমস্ত বেস জুড়ে সংরক্ষিত থাকে।

ওপেন-সোর্স নোটিশ: রূপান্তর নেটিভ JavaScript BigInt API দিয়ে বাস্তবায়িত। কোনো তৃতীয়-পক্ষের সংখ্যাসূচক লাইব্রেরি ব্যবহার করা হয়নি।

সচরাচর জিজ্ঞাসা

বেস 58 কেন কিছু অক্ষর বাদ দেয়?
বেস 58 ইচ্ছাকৃতভাবে 0, O, I এবং l বাদ দেয় কারণ মুদ্রিত বা হাতে লেখা আকারে সেগুলো সহজে গুলিয়ে যায়। এটি অ্যাড্রেস হাতে লেখা নিরাপদ করে তোলে, তাই বিটকয়েন এটি গ্রহণ করেছে।
এখানে বেস64 কি ইমেইল সংযুক্তির জন্য ব্যবহৃত বেস64-এর মতোই?
না। এই টুলটি একটি একক পূর্ণসংখ্যার জন্য অবস্থানভিত্তিক সংখ্যা পদ্ধতি হিসেবে বেস 64-কে বিবেচনা করে। সংযুক্তি এনকোডিং (RFC 4648) বাইট স্ট্রিমে কাজ করে এবং '=' দিয়ে প্যাডিং যোগ করে। সেজন্য Base64 টুল ব্যবহার করুন।
আমি কি খুব বড় সংখ্যা রূপান্তর করতে পারি?
হ্যাঁ। সবকিছু BigInt-এর মাধ্যমে চলে, তাই শত শত অঙ্ক সঠিকভাবে রূপান্তরিত হয়। সাধারণ JavaScript সংখ্যার মতো 2^53-এ নীরব রাউন্ডিং নেই।
ইনপুট কি কেস-সংবেদনশীল?
36 পর্যন্ত বেসের জন্য না: 'FF' এবং 'ff' দুটোই হেক্সে 255 বোঝায়। বেস 37 থেকে উপরে বড় হাতের এবং ছোট হাতের অক্ষর স্বতন্ত্র প্রতীক, তাই কেস গুরুত্বপূর্ণ।
আমি কীভাবে একটি ঋণাত্মক সংখ্যা রূপান্তর করব?
শুধু এটির আগে একটি বিয়োগ চিহ্ন বসান। চিহ্নটি প্রতিটি আউটপুট বেসে বহন করা হয়। টু'স-কমপ্লিমেন্ট উপস্থাপনা একটি পৃথক ধারণা এবং এখানে প্রয়োগ করা হয় না।
কোনো কিছু কি সার্ভারে পাঠানো হয়?
না। রূপান্তর সম্পূর্ণরূপে আপনার ব্রাউজারে চলে, তাই আপনি যে মানগুলো টাইপ করেন সেগুলো কখনো আপনার মেশিন ছেড়ে যায় না।