تبدیل اعداد دسیمال به باینری

نکته : این پست مکملی برای پست عملگرهای بیتی می باشد.
اعداد باینری در دنیای کامپیوتر معمولا به صورت گروه های هشت رقمی یا بیتی هستند. برای تبدیل اعداد دسیمال به باینری ابتدا باید هشت فضای خالی برای قرار دادن این هشت رقم ایجاد کنید. فرض کنید می خواهیم عدد 54 را به معادل باینری آن تبدیل کنیم:

binary-conversion-1001

برای این کار یک سری عملیات ساده تکراری لازم است. اعداد باینری مبنای 2 هستند، بنابراین از عدد 2 به عنوان مبنا استفاده کرده و توان آن را از صفر به صورت زیر شروع می کنیم:

binary-conversion-1002

سپس اعداد 2 را به توان رسانده و معادل آن را به صورت زیر می نویسیم :

binary-conversion-1003

به اعداد بالا توجه کنید. هر عدد دو برابر عدد قبل از خودش است. حال کارمان را شروع می کنیم. در بین اعداد بالا بزرگترین عددی که از عدد مورد نظر ما بزرگتر نباشد را پیدا می کنیم. در بین اعداد بالا عدد 32 از عدد 54 که عدد مورد نظر ماست بزرگتر نیست. بر روی این عدد یک عدد 1 به صورت زیر قرار می دهیم.

binary-conversion-1004

حال عدد 32 را از عدد 54 کم می کنیم (22=32-54). در این قسمت عدد 22 عدد مورد نظر ما می شود. در بین اعداد بالا بزرگتری عددی که از عدد 22 بزرگتر نباشد را پیدا کرده و عدد 1 را بالای آن می نویسیم.

binary-conversion-1005

سپس عدد 16 را از عدد 22 کم می کنیم (6=16-22) که باقیماند آن عدد 6 است که بزرگترین عدد در بین اعداد بالا که از 6 بزرگتر نباشد عدد 4 است. عدد 1 را بالای عدد 4 قرار می دهیم.

binary-conversion-1006

و در نهایت عدد (2=4-6) 2 عدد موردنظر ما می شود که تنها عدد بزرگ در بین اعداد بالا که از عدد 2 بزرگتر نباشد همان عدد دو است. در بالای آن نیز عدد ی1 قرار می دهیم.

binary-conversion-1007

کار ما به پایان رسید و فضاهای خالی را با عدد صفر پر می کنیم.

binary-conversion-1008

عدد به دست آمده 00110110 معادل باینری عدد 54 است. به این نکته توجه کنید که اعداد بزرگتر به بیت های بیشتری برای تبدیل نیاز دارند. برای اضافه کردن بیت جدید کافیست که بزرگترین عدد را دوبرابر کنید و در بیت جدید بنویسید. مثلا برای عدد 312 کافیست که عدد 128 را دوبرابر کنید و در بیت جدید به صورت زیر بنویسید :

binary-conversion-1009

حال اگر بخواهید، مراحل بالا را با استفاده از کدنویسی انجام دهید، باید به صورت زیر عمل کنید :

using System;

namespace DecimalToBinary
{
    class Program
    {
        static void Main(string[] args)
        {
            int number;
            Console.Write("Enter a Number : ");
            number = int.Parse(Console.ReadLine());
            int quotient;
            string remainder = "";
            while (number >= 1)
            {
                quotient = number / 2;
                remainder += (number % 2).ToString();
                number = quotient;
            }
            string binary = "";
            for (int i = remainder.Length - 1; i >= 0; i--)
            {
                binary = binary + remainder[i];
            }
            Console.WriteLine("The Binary format for given number is {0}", binary);
            Console.Read();
        }
    }
}
Enter a Number : 54
The Binary format for given number is 110110

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.