شاید برای یک انسان قوانین ریاضی و ساختار عددی مختلف قابل درک باشد اما برای یک ماشین اینطور نیست. همه ی ما شنیده ایم که کامپیوتر یک سیستم دیجیتالی است اما این به چه معناست؟ اعداد باینری یا همان اعداد دودویی یعنی چه؟ و چرا دستگاهای الکترونیکی از این سیستم استفاده می کنند. در ادامه با گامامگ همراه باشید تا اعداد باینری را بهتر درک کنید.

سیستم اعداد مبنای ۱۰ یا اعداد ده دهی

قبل از اینکه به موضوع اعداد دودویی بپردازیم بهتر است نگاهی به سیستم عددی مرسوم ما یعنی اعداد مبنای ۱۰ بی اندازیم. در این سیستم، مبنای ما ۱۰ و ارقام مورد استفاده اعداد از ۰ تا ۹ می باشند. یعنی عددی مثل ۱۲۹ ( صد و بیست و نه ) از ۱۰۰ + ۲۰ + ۹ تشکیل شده که هر کدام نشان دهنده ی یک جایگاه یا ارزش از این سیستم است. به ترتیب از جایگاه راست به چپ کمترین ارزش مربوط به یکان ( ۱۰۰ ) و بعدی دهگان ( ۱۰۱ ) و سومین جایگاه صدگان ( ۱۰۲ ) هینطور جایگاه های بعدی توان های بالاتر از عدد ۱۰ می باشند. توان های عدد ۱۰ نشان دهنده ی واحد یا ارزش هر جایگاه است، یعنی چه؟ یعنی در جایگاه یکان که ارزش آن ۱۰ به توان ۰ می باشد که برابر با ۱ است، هر عددی که در یکان قرار بگیرد در ارزش جایگاه یعنی ۱ ضرب می شود. همانند رقم ۹ در عدد ۱۲۹٫ همچنین عدد ۲ در جایگاه بعدی قرار گرفته یعنی دهگان که یعنی عدد ۲ در ۱۰ به توان ۱ ضرب شده که می شود ۲۰٫ این فرمول همینطور در جایگاه های بعدی هم ادامه خواهد داشت و سیستم اعداد ده دهی یا مبنای ۱۰ را شکل می دهد.

سیستم اعداد مبنای ۲ یا اعداد دودویی ( باینری )

چرا اعداد باینری

درواقع با روی کار آمدن قوانین شمارش و ریاضی در زندگی مردم از همان ابتدا یکی از دقدقه های دانشمندان و فعالان این علم روشی برای محاسبات سریع تر و با دقت بیشتر بوده است تا فرمولهای پیچیده ی ریاضی با اعداد بزرگ و دشوار را بدون دردسر حل نماید. یکی از ایده های مربوطه طراحی و ساخت ماشینی بود تا بتواند چهار عمل اصلی ریاضی را بروی اعداد پیاده سازی کند اما مشکل اینجا بود که چگونه در دنیای واقعی برای یک ماشین قوانین شمارش را شرح دهیم یا اصلاً پیاده سازی کنیم. با کمی جستجو در دنیای وب می توانید ماشین حساب های اولیه که بصورت مکانیکی ساخته شده بودند را مشاهده کنید. درحالی که خبری از اغداد مبنای ۲ نبود برخی دانشمندان سعی کردند تا هر ۱۰ رقم سیستم شمارش را در یک ماشین بگنجانند تا بتواند اعداد را به شکلی به نمایش درآورند.

چرتکه

اعداد دودویی

مثال ساده ی آن همین چردکه خودمان است. هشت میله که به ترتیب از چپ به راست جایگاه و ارزش ها را مشخص می کنند ( یکان ، دهگان ، صدگان و … ) و در کنار آن ۱۰ حلقه یا گوی های چوبی که درون میله ها نمایان گر سیستم شمارش و اعداد هستند. بگذارید بحث را بیشتر از این پیچیده نکنیم اما هدف از این مثال ها این بود که مشخص شود سیستم عددی دَه دَهی چقدر برای پیاده سازی بصورت یک ماشین محاسبه گر دشوار است زیرا طراح می بایست برای هر ۱۰ حالت ( منظور اعداد ۰ تا ۹ ) یک حالت مشابه در ماشین ایجاد کند که نمایانگر عدد معادل باشد.

تاریخچه سیستم اعداد باینری

هرچند سیستم عددی دودویی قرن ها قبل از میلاد هم توسط اشخاصی به شکل غیر مستقیم مطرح شد اما به شکل جدی در مبحث ریاضیات توسط گاتفرید لاینبتیز (Gottfried Leibniz) ارائه شد. درحالی که بطور عادی ما از سیستم اعداد ده دهی استفاده می کنیم و هر جایگاه عددی یکی از اعداد ۰ تا ۹ را بخود خواهد دید ( مثل عدد ۴۲۷ ، تشکیل شده از عدد ۷ در جایگاه یکان ، عدد ۲ در جایگاه دهگان ، عدد ۴ در جایگاه صدگان ) در سیستم اعداد دودویی ما فقط دو حالت یا دو عدد استفاده می کنیم که در هر جایگاه فقط یکی از دوحالت قرار خواهد گرفت ، به مثال زیر توجه کنید:

کاربرد اعداد باینری

مثلاً عدد ۴ در سیستم عدد مبنای ۱۰ به شکل همان ۴ نشان داده می شود چون یکی از ده رقم شمارش است اما در سیستم عدد باینری به شکل ۱۰۰ نشان داده می شود که خوانده خواهد شد: یک صفر صفر ،  زیرا در مبنای دو فقط دوحالت است که اعداد را نشان می دهد ؛ ۰ و ۱٫ کاهش تعداد حالات از ۱۰ به دو یکی از مزایایی است که طراحان یک ماشین محاسبه گر می توانند داشته باشند.

بعد از روی کار آمدن اعداد دودویی دیگر نیاز به در نظر گرفتن ۱۰ عدد اصلی ۰ تا ۹ در یک ماشین نیست چون همانطور که متوجه شدید با تبدیل عدد مبنای ۱۰ به مبنای ۲ و ارائه آن به یک ماشین محاسبه گر که فقط اعداد دودویی را محاسبه می کند کار طراحی یک ماشین حساب ساده تر خواهد شد. خب حالا بیایید به سؤال اصلی خود که در ابتدا مطرح کردیم بپردازیم. سیستم دیجیتالی یعنی چه؟…

بطور کلی قلب یک کامپیوتر مدار مجتمع و فشرده شده تحت تکنولوژی پیشرفته ای به نام واحد پردازش مرکزی یا همان CPU است که این CPU در حقیقت امر تنها چهار عمل اصلی ریاضی را بروی اعداد باینری یا همان مبنای ۲ که در قالب ولتاژ های ۰ و X ولت ( مثلاً در پردازنده های صنعتی ۰ و ۵ ولت ) به آن داده می شود را انجام خواهد داد. سیستم اعداد دودویی کمک بزرگی به طراحی اولین کامپیوترهای الکتریکی کرده زیرا در یک مدار الکتریکی بسیار سخت است تا ۱۰ عدد مختلف را معادل سازی کرد اما دو حالت بسیار ساده تر است و مهندسین این حوزه با بازی با ولتاژ اعمالی به مدار الکتریکی ، این دو حالت اعداد دودویی را پیاده سازی کردند ، به عنوان مثال ولتاژ ۰ معادل عدد صفر و ولتاژ ۵ معادل عدد ۱ در سیستم اعداد دودویی.

ولتاژ

اعداد دودویی

محاسبه اعداد مبنای ۲ یا باینری

اگر سیستم مبنای ۱۰ که بالاتر به آن اشاره کردیم یادتان باشد هر جایگاه به ترتیب از راست به چپ توان های ۰ تا n از عدد مبنا یا همان ۱۰ بود. در اعداد مبنای ۲ هم روال به همان شکل است و تنها مبنا عوض شده. در اعداد باینری همانطور که از نام و عدد مبنای آن پیداست تنها دو رقم ۰ و ۱ وجود دارد که باید در هر جایگاه بنشیند. ارزش هر جایگاه به ترتیب از راست به چپ با توان های ۰ تا n عدد ۲ مشخص می گردد.

مثال:

۲۰ ۲۱ ۲۲
۱ ۰ ۱

در عدد بالا ۱ در جایگاه کم ارزشترین است که در ۲ به توان ۰ ضرب می شود و برابر است با همان ۱، عدد ۰ در جایگاه بعدی با ۲ به توان ۱ ضرب می شود و برابر خواهد بود با ۰ و در نهایت عدد ۱ با ۲ به توان ۲ ضرب می شود و برابر می شود با ۴ که جمع این نتایج خواهد بود عدد ۵٫ بله درست متوجه شدید، عدد ۵ خودمان در سیستم اعداد باینری یا مبنای ۲ برابر است با ۱۰۱٫

تبدیل اعداد مبنای ۱۰ به مبنای ۲

برای تبدیل اعداد دهدهی یا مبنای ۱۰ به  دودویی یا مبنای ۲، عدد مورد نظر را به صورت متوالی بر ۲ تقسیم می کنیم. تقسیم را آنقدر ادامه می دهیم تا خارج قسمت صفر شود. درنهایت آخرین خارج قسمت تقسیم و باقیمانده ها به ترتیب از آخرین باقیمانده در کنار هم از راست به چپ می نویسیم. عدد بدست آمده در مبنای ۲ برابر با عدد مورد نظر ما در مبنای ۱۰ خواهد بود.

مثال:

تبدیل عدد ۵ به مبنای ۲

۵/۲ = ۲, باقیمانده = ۱

                ۲/۲ = ۱, باقیمانده = ۰

۱۰۱

البته لازم به ذکر است که در سال ۱۸۵۴ آقای جرج بول یک ریاضی دان انگلیسی سیستم منطقی جبر بول یا منطق بول را ابداع کرد. این منطق که نوعی جبر به حساب می آید به گونه ای است که مقادیر در آن درست یا غلط و یا همان ۰ و ۱ هستند، بر همین اساس با کمک منطق بولی و سیستم اعداد دودویی یا باینری می توان محاسبات ریاضی به شکلی ساده تر در ماشین ها پیاده سازی نمود.