C++ এ বাইনারি থেকে দশমিক রূপান্তর

C E Ba Inari Theke Dasamika Rupantara



নিবন্ধে, আমরা একটি C++ প্রোগ্রামে বাইনারি মানের দশমিক মানের রূপান্তর দেখতে পাব। বাইনারি সংখ্যা 0 এবং 1 সংখ্যা দ্বারা উপস্থাপিত হয়, যেখানে দশমিক মানের সংখ্যা 0 থেকে 9 পর্যন্ত থাকে। একটি বাইনারি-থেকে-ডেসিমেল রূপান্তর সম্পন্ন করার জন্য, বাইনারি মানটিকে 2 দ্বারা গুণিত করতে হবে n” ডান থেকে শুরু করে এবং একটি উচ্চতর “n” দিয়ে বাম দিকে সরানো। একটি বাইনারিকে দশমিক মানের রূপান্তর করতে কোডে এটি প্রয়োগ করা যাক।

উদাহরণ 1: 'যখন' লুপ ব্যবহার করে বাইনারি থেকে দশমিকের প্রোগ্রাম

সংখ্যাটিকে বাইনারি থেকে দশমিকে রূপান্তর করার জন্য আমাদের নিম্নলিখিত প্রোগ্রাম রয়েছে। প্রোগ্রামের মধ্যে, আমরা বাইনারি রূপান্তরকে দশমিকে করার জন্য 'while' লুপ ব্যবহার করি।

# অন্তর্ভুক্ত করুন
# অন্তর্ভুক্ত

ব্যবহার নামস্থান std ;

int রূপান্তর অফবিন ( দীর্ঘ দীর্ঘ ) ;

int প্রধান ( ) {
দীর্ঘ দীর্ঘ একের উপর ;
cout << 'বাইনারি নম্বর প্রয়োজন:' ;
খাওয়া >> একের উপর ;
cout << একের উপর << 'বাইনারিতে =' << রূপান্তর অফবিন ( একের উপর ) << 'দশমিক মধ্যে' ;
ফিরে 0 ;
}

int রূপান্তর অফবিন ( দীর্ঘ দীর্ঘ একের উপর ) {
int তাই = 0 , এক্স = 0 , অবশিষ্ট ;

যখন ( একের উপর ! = 0 ) {
অবশিষ্ট = একের উপর % 10 ;
একের উপর / = 10 ;
ডিসেম্বর + = অবশিষ্ট * pow ( 2 , এক্স ) ;
++ এক্স ;
}

ফিরে তাই ;
}

এখানে, আমরা ইনপুট এবং আউটপুট স্ট্রীমগুলির জন্য 'iostream' হেডার ফাইল এবং প্রোগ্রামে গাণিতিক ফাংশন ব্যবহার করার জন্য 'cmath' সংজ্ঞায়িত করি। এর পরে, আমরা ConversionOfBin() ফাংশন সংজ্ঞায়িত করি যেখানে 'লং লং' টাইপের প্যারামিটার পাস করা হয়। এর পরে, প্রোগ্রামটি চালানোর জন্য আমাদের একটি main() ফাংশন কল আছে। আমরা main() ফাংশনের ভিতরে 'num' নামে একটি দীর্ঘ ইন্টার টাইপ ভেরিয়েবল ঘোষণা করি।







এর পরে, ConversionOfBin() ফাংশন ইনপুট বাইনারি সংখ্যাকে দশমিক সংখ্যায় রূপান্তর করে। এর জন্য, আমাদের কাছে ড্রাইভার কোডের পরে ConversionOfBin() ফাংশনের সংজ্ঞা রয়েছে। ConversionOfBin() ফাংশনটি 'num' ভেরিয়েবলের সাথে পাস করা হয় যার বাইনারি সংখ্যা রয়েছে। তারপর, আমরা 'num'-এ বাইনারি সংখ্যাকে দশমিক মানের রূপান্তর করার জন্য 'while' লুপকে কল করি। এর আগে, আমরা '0' এর মান দিয়ে 'deci', 'x,' এবং 'remainder' ভেরিয়েবল শুরু করি।



'যখন' লুপের মধ্যে, বাইনারি সংখ্যার ডানদিকের মানের প্রতিনিধিত্ব করতে ডিভিশন অপারেশন করা হয়। বিভাগের ফলাফল 'বাকি' ভেরিয়েবলে সংরক্ষণ করা হয়। তারপর, আমরা 'deci' ভেরিয়েবলে অবশিষ্ট ফলাফল এবং পাওয়ার ফলাফল যোগ করি। 'x' ভেরিয়েবলটি 2 এর সক্রিয় শক্তিকে মূল্যায়ন করতে থাকে।



নির্দিষ্ট বাইনারি সংখ্যাগুলিকে দশমিক মানগুলিতে রূপান্তর করার ফলাফল C++ কনসোলে পাওয়া যায়:





উদাহরণ 2: 'ফর' লুপ ব্যবহার করে বাইনারি থেকে দশমিকের প্রোগ্রাম

বাইনারি থেকে দশমিকে রূপান্তর একটি 'যখন' লুপ ব্যবহার করে সম্পন্ন করা হয়েছিল। যাইহোক, আমরা বাইনারি বিটগুলিকে দশমিক সংখ্যায় রূপান্তর করতে 'ফর' লুপ পদ্ধতি ব্যবহার করতে পারি।



# অন্তর্ভুক্ত করুন
#include

int প্রধান ( ) {
std :: স্ট্রিং বিন ;
std :: cout << 'ইনপুট বাইনারি নম্বর:' ;
std :: খাওয়া >> বিন ;

int ডিসেম্বর = 0 ;
int ভিত্তি = 1 ;

জন্য ( int = বিন দৈর্ঘ্য ( ) - 1 ; >= 0 ; -- ) {
যদি ( বিন [ ] == '1' ) {
ডিসেম্বর + = ভিত্তি ;
}
ভিত্তি * = 2 ;
}

std :: cout << 'ডেসিমেলে ফলাফল:' << ডিসেম্বর << std :: endl ;

ফিরে 0 ;
}

এখানে, আমরা main() ফাংশন প্রোগ্রাম দিয়ে শুরু করি যেখানে আমাদের কাছে 'std::string' ভেরিয়েবল আছে যা 'bin' প্রম্পটে ব্যবহারকারীর দ্বারা বাইনারি নম্বর ইনপুট সংরক্ষণ করার জন্য। প্রাথমিকভাবে, প্রম্পট ব্যবহারকারীকে 'cout' স্টেটমেন্ট ব্যবহার করে বাইনারি নম্বর ইনপুট করতে বলবে। তারপর, 'cin' কমান্ডটি সেই বাইনারি সংখ্যাটি পড়বে। এর পরে, আমরা দশমিক সমতুল্য পেতে '0' এর মান সহ 'dec' ভেরিয়েবল এবং '1' এর মান সহ 'baseIs' ভেরিয়েবল শুরু করি।

তারপর, আমরা একটি 'ফর' লুপ বলি যা নির্দিষ্ট বাইনারির প্রতিটি সংখ্যার উপর ডান থেকে বামে লুপ করে। লুপের মধ্যে, বাইনারি সংখ্যা 1 কিনা তা যাচাই করার জন্য আমাদের একটি 'if' শর্ত রয়েছে। যদি এটি 1 হয়, দশমিক মানটি 'dec' ভেরিয়েবলে যোগ করা হয়। “baseIs” ভেরিয়েবলের ক্ষমতা আছে 2 এর সাথে প্রতিটা পুনরাবৃত্তিতে 1 দিয়ে গুণ করা।

বাইনারি সংখ্যার মান এবং দশমিক মানের মধ্যে এর রূপান্তর প্রম্পট স্ক্রিনে দেখানো হয়েছে:

উদাহরণ 3: বাইনারি স্ট্রিং থেকে দশমিকের প্রোগ্রাম

বাইনারি স্ট্রিং মান এখন সংজ্ঞায়িত করা হয়েছে তার মানকে দশমিক মানের মধ্যে রূপান্তর করতে। বাইনারি স্ট্রিং মানকে দশমিক মানের রূপান্তর করতে নিম্নলিখিত বাস্তবায়ন করা হয়:

# অন্তর্ভুক্ত করুন
#include
ব্যবহার নামস্থান std ;

int binToDec ( স্ট্রিং ভাল )
{
তারের উপকারিতা = ভাল ;
int দশমিক_মান = 0 ;

int ভিত্তি_মূল্য = 1 ;

int কেবল = মান দৈর্ঘ্য ( ) ;
জন্য ( int মি = কেবল - 1 ; মি >= 0 ; মি -- ) {
যদি ( ভাল [ মি ] == '1' )
দশমিক_মান + = ভিত্তি_মূল্য ;
ভিত্তি_মূল্য = ভিত্তি_মূল্য * 2 ;
}

ফিরে দশমিক_মান ;
}

int প্রধান ( )
{
স্ট্রিং ভাল = '11100101' ;
cout << binToDec ( ভাল ) << endl ;
}

এখানে, আমরা একটি BinToDec() ফাংশন তৈরি করে বাইনারি ডিজিটকে দশমিক মানের মধ্যে রূপান্তর করতে শুরু করি। BinToDec() ফাংশনটি স্ট্রিং টাইপের 'val' আর্গুমেন্ট নেয়। BinToDec() ফাংশনের মধ্যে, আমরা 'value' ভেরিয়েবলটিকে 'val' ভেরিয়েবল দিয়ে আরম্ভ করি যা উপস্থাপন করে যে 'val' ভেরিয়েবলের মান 'value' ভেরিয়েবলে সংরক্ষণ করা হবে। তারপর, আমরা একটি নতুন ভেরিয়েবল ঘোষণা করি, “decimal_value”, যা 0 এর মান দিয়ে বরাদ্দ করা হয়েছে।

একইভাবে, “base_value” ভেরিয়েবল সেট করা হয়েছে এবং 1 এর মান দিয়ে আরম্ভ করা হয়েছে। এরপর, আমরা “len” ভেরিয়েবলকে সংজ্ঞায়িত করি যেখানে length() ফাংশনটি বাইনারি সংখ্যার দৈর্ঘ্য পেতে বলা হয়। ভেরিয়েবলের প্রারম্ভিকতার পরে, আমাদের কাছে 'for' লুপ পুনরাবৃত্তি আছে। 'ফর' লুপটি ডান থেকে বামে প্রতিটি বাইনারি সংখ্যা সংখ্যাকে পুনরাবৃত্তি করে।

এর পরে, আমাদের একটি main() ফাংশন রয়েছে যেখানে বাইনারি নম্বরটিকে 'val' ভেরিয়েবলের একটি স্ট্রিং মান হিসাবে নির্দিষ্ট করা হয় যা দশমিক মান হিসাবে রূপান্তরিত হয় কারণ আমরা 'cout' কমান্ডের সাথে BinToDec(val) ফাংশনকে কল করি।

স্ট্রিং-টাইপ বাইনারি মান এখন দশমিক মানের মধ্যে রূপান্তরিত হয়েছে যেমনটি নিম্নলিখিতটিতে প্রদর্শিত হয়েছে:

উদাহরণ 4: বিটসেট ক্লাস ব্যবহার করে বাইনারি থেকে দশমিকের প্রোগ্রাম

উপরন্তু, আমরা প্রোগ্রামে C++ এর “বিটসেট” ক্লাস সংজ্ঞায়িত করে বাইনারি সংখ্যাটিকে দশমিক সংখ্যায় রূপান্তর করতে পারি। এটি এমন ফাংশন প্রদান করে যার মাধ্যমে রূপান্তর পদ্ধতিটি খুবই সহজ।

# অন্তর্ভুক্ত করুন
# অন্তর্ভুক্ত করুন

int প্রধান ( ) {
std :: স্ট্রিং বাইনারি ;
std :: cout << 'দয়া করে বাইনারি নম্বর প্রদান করুন:' ;
std :: খাওয়া >> বাইনারি ;

std :: বিটসেট < 64 > বাইনারি ( বাইনারি ) ;
স্বাক্ষরবিহীন দীর্ঘ দশমিক সংখ্যা = বাইনারি অতিদীর্ঘ ( ) ;

std :: cout << 'দশমিক সংখ্যা: ' << দশমিক সংখ্যা << std :: endl ;

ফিরে 0 ;
}

এখানে, আমরা হেডারে C++ এর “বিটসেট” লাইব্রেরি সেট করেছি যা বাইনারি মান নিয়ে কাজ করার সময় খুবই সহায়ক। এর পরে, আমাদের একটি main() ফাংশন সংজ্ঞা আছে যেখানে আমরা 'std::string' ব্যবহার করে 'binaryIs' ভেরিয়েবল ঘোষণা করি। 'binaryIs' ভেরিয়েবলটি স্ট্রিং-এ বাইনারির মান সঞ্চয় করে। এরপরে, আমরা ব্যবহারকারীকে প্রম্পটে বাইনারি নম্বর যোগ করতে বলি এবং এটি 'cin' কমান্ডের মাধ্যমে পড়া হয়। এর পরে, আমরা বিটগুলির আকার সামঞ্জস্য করি যা 64 বিট পূর্ণসংখ্যা হতে পারে। তারপর, to_ulong() ফাংশনটিকে “bitset” ক্লাস থেকে “decimalNumber” ভেরিয়েবলে কল করা হয়। to_ulong() ফাংশনটি বিটগুলির সেটকে একটি স্বাক্ষরবিহীন দীর্ঘ ডেটা টাইপে রূপান্তরিত করে। সবশেষে, আমরা ব্যবহারকারীর দেওয়া বাইনারি মানের দশমিক মান প্রিন্ট করতে 'cout' কমান্ড ব্যবহার করি।

ব্যবহারকারী দ্বারা প্রদত্ত বাইনারি মান এখন দশমিক মানের মধ্যে রূপান্তরিত হয়:

উপসংহার

উপসংহারে, আমরা একটি বাইনারি মানকে দশমিক মানের রূপান্তর করার পদ্ধতিগুলি কভার করেছি। আমরা 'for' লুপ, 'while' লুপ ব্যবহার করেছি এবং বাইনারি রূপান্তর দশমিকে রূপান্তরের জন্য বিটসেট ক্লাস পদ্ধতি ব্যবহার করেছি। এই পদ্ধতিগুলি বাইনারি সংখ্যাগুলিকে দশমিক সিস্টেমে রূপান্তরিত করে যা পড়া এবং বোঝার সুবিধা দেয়।