কিভাবে C-তে দশমিককে বাইনারিতে রূপান্তর করা যায়

Kibhabe C Te Dasamikake Ba Inarite Rupantara Kara Yaya



কম্পিউটার সিস্টেমগুলি প্রায়শই ডেটা এবং নির্দেশাবলীর প্রতিনিধিত্ব করার জন্য বাইনারি সংখ্যা ব্যবহার করে, কিন্তু যেহেতু দশমিক সংখ্যাগুলি বাইনারিগুলির তুলনায় মানুষের পক্ষে বোঝা সহজ, তাই রূপান্তর প্রয়োজন। এই নিবন্ধটি দশমিকের মধ্যে বাইনারিতে বোঝার মধ্য দিয়ে যাবে এবং বিভিন্ন পদ্ধতির প্রোগ্রাম উদাহরণ প্রদান করবে যা C নামক প্রোগ্রামিংয়ের ভাষায় দশমিককে বাইনারিতে রূপান্তরিত করে।

কিভাবে C-তে দশমিককে বাইনারিতে রূপান্তর করবেন?

প্রদত্ত দশমিক মানটিকে 2 দ্বারা বেশ কয়েকবার ভাগ করা হয়, অবশিষ্টাংশ রেকর্ড করা হয় যতক্ষণ না আমরা চূড়ান্ত ভাগফল হিসাবে 0 এ না যাই। এই প্রক্রিয়াটি পূর্ণসংখ্যাকে দশমিক থেকে বাইনারিতে রূপান্তর করতে ব্যবহৃত হয়। যে সূত্রটি দশমিক থেকে বাইনারিতে রূপান্তর প্রক্রিয়া প্রদর্শন করে তা নিম্নরূপ পর্যায় হিসাবে বিবেচিত হয়:







ধাপ 1: সংখ্যাটিকে 2 দ্বারা ভাগ করে অবশিষ্টটি খুঁজুন, তারপর এটি একটি অ্যারেতে যোগ করুন।



ধাপ ২: এর পরে, অবশিষ্টটিকে দুই দ্বারা ভাগ করুন।



ধাপ 3: ফলাফল 0 ছাড়িয়ে না যাওয়া পর্যন্ত আবার প্রথম দুটি ধাপ চালান।





ধাপ 4: সংখ্যার বাইনারি ফর্ম পেতে অ্যারেটিকে পিছনের দিকে প্রদর্শন করুন। একটি বাইনারি সংখ্যার সর্বনিম্ন-গুরুত্বপূর্ণ-বিট (এলএসবি) শীর্ষে থাকে, যেখানে সর্বাধিক-গুরুত্বপূর্ণ-বিট (এমএসবি) নীচের দিকে থাকে, যা এটি ব্যাখ্যা করার আরেকটি উপায়। প্রদত্ত দশমিক সংখ্যার বাইনারি সমতুল্য হল এটি।

এটিকে আরও ভালভাবে উপলব্ধি করতে, এখানে 11-এর একটি রূপান্তর রয়েছে 10 দশমিকে বাইনারি রূপান্তর:



2 দ্বারা বিভাজন ভাগফল অবশিষ্ট
11÷2 5 1 (LSB)
5 ÷ 2 2 1
2-2 1 0
1-2 0 1 (MSB)


এখন, অবশিষ্টাংশকে বিপরীত ক্রমে লিখুন, অত:পর দশমিক (11 10 ) হয়ে যায় (1011 2 )

অবশিষ্টগুলি নোট করা হবে এবং তারপর লিখতে হবে যাতে বাইনারি সংখ্যার (MSB) প্রথমে আসে, তারপর বাকিগুলি। ফলস্বরূপ, 1011 2 প্রদত্ত দশমিক মানের 11 এর বাইনারি সমতুল্য 10 . ফলস্বরূপ, 11 10 = 1011 2 . সি ল্যাঙ্গুয়েজে বাইনারি রূপান্তরে উপরে উল্লিখিত দশমিকের বাস্তবায়ন নিচে দেওয়া হল।

দশমিককে বাইনারিতে রূপান্তর করতে ব্যবহৃত পদ্ধতি

সি ভাষায় ব্যবহৃত এই পদ্ধতিগুলি দশমিক সংখ্যাকে বাইনারিতে রূপান্তর করে:

এখন, উপরের উল্লিখিত পন্থাগুলির দ্বারা দশমিকের রূপান্তরটি বাইনারিগুলিকে এক করে বাস্তবায়ন করুন।

পদ্ধতি 1: লুপের জন্য সি প্রোগ্রামিং-এ দশমিক থেকে বাইনারি

নিচে সি-তে ফর-লুপের সাহায্যে দশমিক সংখ্যাকে (11) বাইনারিতে রূপান্তর করা হল:

# অন্তর্ভুক্ত করুন
অকার্যকর রূপান্তর ( int num1 ) {
যদি ( সংখ্যা1 == 0 ) {
printf ( '0' ) ;
ফিরে ;
}
int binary_num [ 32 ] ; // অনুমান 32 বিট পূর্ণসংখ্যা।
int i = 0 ;
জন্য ( ;সংখ্যা 1 > 0 ; ) {
বাইনারি_সংখ্যা [ i++ ] = সংখ্যা1 % 2 ;
সংখ্যা1 / = 2 ;
}
জন্য ( int j = i- 1 ; j > = 0 ; জে-- )
printf ( '%d' , বাইনারি_সংখ্যা [ j ] ) ;
}
int প্রধান ( ) {
int num1;
printf ( 'একটি দশমিক সংখ্যা লিখুন:' ) ;
scanf ( '%d' , এবং সংখ্যা1 ) ;
রূপান্তর ( সংখ্যা1 ) ;
ফিরে 0 ;
}


উপরের প্রোগ্রামটি ব্যবহারকারীর দেওয়া দশমিক সংখ্যাকে বাইনারিতে রূপান্তর করতে for লুপ ব্যবহার করছে। আউটপুট হল:

পদ্ধতি 2: যখন লুপ সহ সি প্রোগ্রামিং-এ দশমিক থেকে বাইনারি

এই পদ্ধতিতে, C-তে while-loop ব্যবহার করা হয় দশমিক সংখ্যাকে (11), বাইনারিতে রূপান্তর করতে, যা নীচে দেখানো হয়েছে:

# অন্তর্ভুক্ত করুন
int প্রধান ( ) {
int decimal_num, binary_num = 0 , ভিত্তি = 1 , অবশিষ্ট;
printf ( 'একটি দশমিক সংখ্যা লিখুন:' ) ;
scanf ( '%d' , এবং দশমিক_সংখ্যা ) ;
যখন ( দশমিক_সংখ্যা > 0 ) {
অবশিষ্ট = দশমিক_সংখ্যা % 2 ;
binary_num = binary_num + অবশিষ্ট * ভিত্তি;
decimal_number = দশমিক_সংখ্যা / 2 ;
base = ভিত্তি * 10 ;
}
printf ( 'while loop সহ প্রদত্ত দশমিক সংখ্যার বাইনারি হল: %d' , বাইনারি_সংখ্যা ) ;
ফিরে 0 ;
}


চারটি পূর্ণসংখ্যার ভেরিয়েবল decimal_num, binary_num, base এবং অবশিষ্টাংশ এই প্রোগ্রামে প্রথমে ঘোষণা করা হয়। ব্যবহারকারী একটি decimal_num এ প্রবেশ করে, যা আমরা তার binary_num এ রূপান্তর করব। যখন লুপ ব্যবহার করে বাইনারি রূপান্তর করা হয়।

পদ্ধতি 3: স্ট্যাকের সাথে সি প্রোগ্রামিং-এ দশমিক থেকে বাইনারি

এটি একটি স্ট্যাক-ভিত্তিক সি প্রোগ্রামের সাথে সহজবোধ্য পদ্ধতি যা একটি দশমিক মানকে বাইনারিতে পরিবর্তন করে:

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

#সংজ্ঞায়িত করুন MAX_SIZE 32 // বাইনারি উপস্থাপনায় সর্বাধিক সংখ্যক বিট
int প্রধান ( ) {
int decimal_num, বাইনারি [ MAX_SIZE ] , শীর্ষ = -1 ;
printf ( 'দয়া করে যেকোনো দশমিক-সংখ্যা লিখুন:' ) ;
scanf ( '%d' , এবং দশমিক_সংখ্যা ) ;
যখন ( দশমিক_সংখ্যা > 0 ) {
বাইনারি [ ++ শীর্ষ ] = দশমিক_সংখ্যা % 2 ;
দশমিক_সংখ্যা / = 2 ;
}
printf ( 'স্ট্যাক পদ্ধতি ব্যবহার করে %d এর বাইনারি হল: ' ) ;
যখন ( শীর্ষ > = 0 ) {
printf ( '%d' , বাইনারি [ শীর্ষ-- ] ) ;
}
ফিরে 0 ;
}


আমরা প্রথমে এই প্রোগ্রামে তিনটি পূর্ণসংখ্যা ভেরিয়েবল top, binary, এবং decimal_num ঘোষণা করি। শীর্ষটি স্ট্যাকের সর্বোচ্চ উপাদানটির সূচক, দশমিক হল একটি দশমিক আকারে সংখ্যা যা ব্যবহারকারীর দ্বারা প্রবেশ করানো হয়, বাইনারি হল একটি অ্যারে যেটি বাইনারিতে বিটগুলিকে MAX_SIZE বিট হিসাবে ধারণ করবে এবং decimal_num হল বাইনারি অ্যারে৷ এর পরে, একটি while লুপ ব্যবহার করে বাইনারি রূপান্তর করা হয়।

আউটপুট হল:

পদ্ধতি 4: বিটওয়াইজ অপারেটরের সাথে সি প্রোগ্রামিং-এ দশমিক থেকে বাইনারি

একটি বিটওয়াইজ অপারেশন নামে পরিচিত একটি অপারেটর বাইনারি চিহ্নের প্রতিটি বিটকে ম্যানিপুলেট করে যা পূর্ণসংখ্যার প্রতিনিধিত্ব করে। নিম্নলিখিত একটি মৌলিক C স্ক্রিপ্ট যা দশমিকের একটি সংখ্যাকে বাইনারিতে অনুবাদ করতে বিটওয়াইজ অপারেশন ব্যবহার করে:

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

// এই পদ্ধতি সব দেখাবে 4 একটি সংখ্যার বিট
অকার্যকর রূপান্তর ( int num1 ) {
// একটি বিবেচনা করুন 4 -বিট সংখ্যা
জন্য ( int i = 3 ; i > = 0 ; আমি-- ) {
int বিট = ( 1 << i ) ;
যদি ( সংখ্যা1 এবং বিট )
printf ( '1' ) ;
অন্য
printf ( '0' ) ;
}
}
int প্রধান ( ) {
int num1;
printf ( 'একটি দশমিক সংখ্যা লিখুন:' ) ;
scanf ( '%d' , এবং সংখ্যা1 ) ;
পরিবর্তন ( সংখ্যা1 ) ;
ফিরে 0 ;
}


এই প্রোগ্রামটি সবচেয়ে তাৎপর্যপূর্ণ বিট থেকে শুরু করে এবং ন্যূনতম তাৎপর্য সহ বিটে শেষ হওয়া সংখ্যার মাধ্যমে একটি লুপ চালাবে। মাস্ক এবং সংখ্যার উপর একটি 'বিটওয়াইজ এবং' অপারেশন সম্পাদন করে, আমরা নির্ধারণ করতে পারি যে বিটটি হয় 0 বা 1। যদি এটি অ-শূন্য হয়, বর্তমান বিটটি 1; অন্যথায়, এটি 0।

num1 এর বাইনারি ফর্ম দেখাতে, প্রতিটি পুনরাবৃত্তির পরে বিটটি আউটপুট করুন। সম্পূর্ণ নির্বাহের পরে চূড়ান্ত আউটপুট নিম্নরূপ হবে:

উপসংহার

সংখ্যাকে দশমিক থেকে বাইনারিতে রূপান্তর করা কম্পিউটার প্রোগ্রামিংয়ের একটি অপরিহার্য দক্ষতা। দশমিক সংখ্যাকে বাইনারিতে রূপান্তর করা আমাদেরকে C প্রোগ্রামিং-এ বিভিন্ন ক্রিয়াকলাপ চালাতে সক্ষম করে। এই নিবন্ধটি দশমিক মানকে বাইনারি মানগুলিতে রূপান্তর করার জন্য 4টি পদ্ধতি প্রদান করেছে।