ADD









decimal number to binary number converting by C programming

decimal to binary converting


বিঃ দ্রঃ এই প্রোগ্রাম টি বুজতে  arry এর বেসিক জানা থাকতে হবে। 
আমার সাধারনত  কোন সংখ্যাকে বাইনারি বানাতে সংখ্যাটিকে ২  দ্বারা ভাগ করি ,এবং যে ভাগশেষ পাই তা সংগ্রহ করি। আমরা ভাগফল শুন্য না আসা পযন্ত এ প্রক্রিয়া চালিয়ে যাই।প্রাপ্ত ভাগফল প্রক্রিয়াতে নিচ থেকে সংগ্রহ করি ,তাতেই   বাইনারি সংখ্যা পাই ।যেমন নিচে ৩৫ এর বাইনারি দেখানো হয়েছে
প্রাপ্ত ভাগশেষ নিচ থেকে সংগ্রহ করে ,১ ০ ০ ১ ০ ১ পাওয়া গেছে , যা ৩৫ এর বাইনারি ।
আর আমাদের প্রোগ্রামে আমরা ঠিক একই কাজ করব ,যে খানে যে কোন সংখ্যা দিলেই তার বাইনারি পাওয়া যাবে ।
সি প্রোগ্রামটি :

#include<stdio.h>
int main()
{
int ar[10],n,i=0;
// দ্বারা ইউজার থেকে সংখ্যা নিব ,ar [১০]ভাগশেষ গুলো এই arry তে সংগ্রহ করবো। একে উল্টো করে প্রিন্ট করলেই কাঙ্খিত বাইনারি পাব।
scanf("%d",&n);
// সংখ্যা নিব স্ক্যান করে এবং তাকে n রাখবো। 
// এখন হতে লুপ শুরু হবে। লুপ এর শর্ত হল ,ততক্ষন পযন্ত n কে (ইনপুট এ নেয়া সংখ্যা কে ) ভাগ করতে থাকো যতক্ষণ না ,n= শুন্য হয়। মনে করো সংখ্যাটি ১১;
while(n!=0)
{
ar[i]=n%2;


i++;
n=n/2;
প্রথমবার 
i =০,১১ কে ২ দ্বারা ভাগশেষ  করলে ,ভাগশেষ ১, ১ কে   ar [০]={১} রেখেছি , তারপর  i ++=১,হয়েছে ,n=১১ কে ২ দ্বারা  ভাগ ফল   করে  ৫ পাই , এখন  n =৫;তারপর  i ++ হয়ে  i =১ হবে ,
দ্বিতীয় বার 
৫ কে ২ দ্বারা ভাগশেষ  করলে ,ভাগশেষ ১, ১ কে   ar [১]={১} রেখেছি , তারপর  i ++=২,হয়েছে ,n কে ২ দ্বারা  ভাগ  করে  ২ পাই , এখন  n =২; 

তৃতীয় বার 
i =২,২ কে ২ দ্বারা ভাগশেষ  করলে ,ভাগশেষ ০, ০ কে   ar [২]={০} রেখেছি , তারপর  i ++=৩,হয়েছে ,n=২ কে ২ দ্বারা  ভাগ  করে  ভাগফল  ১ পাই , এখন  n =১; 
চতুর্থ বার 
i =৩,১ কে ২ দ্বারা ভাগশেষ  করলে ,ভাগশেষ ১, ১ কে   ar [৩]={১} রেখেছি , তারপর  i ++=৪,হয়েছে ,n=১ কে ০ দ্বারা  ভাগ  করে  ভাগফল  ০ পাই , এখন  n =০; 

একটু ,খেয়াল করুন আমরা কিন্তু এখনো  while loop এর ভিতরেই আছি। loop এর শর্ত ছিল  n !=০,n অর্থাৎ n  এর মান  শুন্য  হতে পারবে না। কিন্তু  এখন  n =০, তাই আমাদের এখন লুপ হতে বের হতে হবে। 
একটা কথা মবে  রাখ ,আমরা i =৪ পেয়েছি। 
}

//ফাইনালি , আমাদের ar [৪]={১,১,০,১}; আমাদের আরটিকে  উল্টায়ে  প্রিন্ট করলেই কিন্তু  উত্তর  পেয়ে  যাব;
সর্বশেষ সংখ্যাটি  ৩ নং ঘরে আছে ,কিন্তু i =৪,বলে  লুপ  এ i =i -১, করে i =৩, বানানো হয়েছে। 

for(i=i-1;i>=0;i--)
{
printf("%d",ar[i]);
}
    return 0;
}

এখান টপাটপ ,প্রোগ্রামটি লিখে রান কর। ইম্পুট ১১ দিলে আউটপুট ১০১১ পাবে।

 আর এই প্রোগ্রামে যে কোনো সংখ্যা দিলে তার বাইনারি দিবে। কিন্তু তা ১০০০০০০০০০ এর বড় হতে পারবে না। কেননা ,int type দিয়ে কেবল ১০০০০০০০০০ সংখ্যা পযন্ত সঠিক উত্তর পাওয়া যায় ;

লেখক ও প্রোগ্রাম আর্টিটেক ( আইডিয়া )
Md. Rusul Azom Sumon
CEO & FOUNDER azomTech

No comments

Theme images by lishenjun. Powered by Blogger.