اعداد باینری یا دودویی

اعداد باینری یا دودویی یکی از مفاهیم پایه‌ای در علم کامپیوتر است. به صورتی که دانشجویان در حال تحصیل در رشته های مهندسی کامپیوتر و یا علوم کامپیوتر ابتدا با این مفهوم آشنا می شوند.

اعداد باینری در واقع اعدادی هستند که در مبنای 2 قرار دارند. شاید شما مبنا های اعداد در ریاضیات را فراموش کرده باشید، اما نگران نباشید چون در این مقاله به صورت مختصر این مورد را نیز توضیح می دهیم.

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

باینری

اعداد طبیعی که ما در دنیا و در ریاضیات ابتدایی با آن ها سر و کار داریم، اعداد در مبنای 10 هستند. این مبنا چه معنی ای دارد؟ یعنی هر رقم در این مبنا می تواند مقدار 0 تا 9 را داشته باشد و نه بیشتر. به بیان ساده شما در ریاضی ابتدایی هیچ رقمی (یک رقمی) نمی یابید که مقدار بیشتر از 9 داشته باشد.

حالا اگر عدد در مبنای دو باشد چه می شود؟ خب احتمالا می توانید پاسخ را حدس بزنید. عدد در مبنای دو فقط شامل ارقام 0 و 1 است. به عنوان مثال عدد 12 در مبنای 2 به صورت مقابل است: 1100

همان طور که می بینید هیچ رقمی بیشتر از 1 وجود ندارد.

یک نکته جالب این است که کامپیوتر اطلاعات ما را به صورت ارقام باینری و یا دودویی ذخیره می کند! برای درک بهتر می توانید مقاله مرتبط در سایت فرادرس را نیز مطالعه کنید.

چطور عدد در مبنای 10 را به مبنای 2 ببریم؟

در موارد بالا دیدیم که عدد 12 در مبنای 2 به چه صورت است. اما چگونه می توانیم این روند تغییر مبنا را محاسبه کنیم؟ کار سختی رو به روی شما نیست! در این مطلب به شما آموزش می دهیم که چگونه به سادگی تمام، اعداد باینری (دو دویی) را به اعداد دسیمال (ده دهی) تبدیل کنیم.

در ابتدا به سراغ همان عدد 12 می رویم. البته این نکته را نیز می دانیم که این عدد در مبنای 10 قرار دارد. برای تبدیل این عدد به مبنای 2 این مراحل را طی می کنیم:

12 را به عدد 2 تقسیم میکنیم و بعد برای خارج قسمت این تقسیم هم همین عمل را تکرار می کنیم. در هر مرحله باقیمانده را یادداشت میکنیم. این کار را تا جایی پیش می بریم که خارج قسمت تقسیم برابر 0 شود. برای درک بهتر بیایید با هم مراحل را پیش ببریم تا بفهمیم چطور باینری عدد به دست می آید و آیا برابر با 1100 که در ابتدای مقاله گفتیم هست یا نه؟

مراحل تبدیل برای عدد 12:

1- باقیمانده تقسیم 12 بر 2 برابر 0 است. عدد 0 را یادداشت می کنیم. آیا خارج قسمت این تقسیم برابر 0 است؟ خیر، پس تقسیم کردن را ادامه میدهیم.

2- خارج قسمت تقسیم مرحله قبل عدد 6 است. باقیمانده 6 بر 2 برابر 0 است پس عدد 0 را یادداشت میکنیم. خارج قسمت این تقسیم صفر نیست پس ادامه می دهیم.

3- در این مرحله باید باقیمانده عدد 3 را بر 2 بگیریم که برابر 1 است. عدد 1 را یادداشت می کنیم. خارج قسمت این تقسیم عدد 1 است و صفر نیست و ادامه می دهیم.

4- عدد 1 را بر 2 تقسیم می کنیم و باقیمانده آن برابر 1 است. 1 را یادداشت میکنیم. خارج قسمت تقسیم عدد 0 است ( چون 2 ضرب در 0 می شود 0). پس کار ما به پایان رسید.

حالا اعدادی که از هر مرحله به دست آوردیم را به این شکل داریم:

0011

اما برای این که به جواب نهایی برسیم باید این اعداد را به صورت چپه بنویسیم (اعداد را از راست بازنویسی کنیم) : 1100 این عدد جواب نهایی است!

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

تبدیل باینری به ده دهی

حالا تصور کنیم که عدد 1100 در مبنای 2 را داریم و می خواهیم آن را به عدد ده دهی یا دسیمال تبدیل کنیم. روش کار به این صورت است:

یک شمارنده در نظر بگیرید و مقدار اولیه آن را برابر 0 در نظر بگیرید.

حالا از سمت راست عدد شروع کنید 2 را به توان عدد شمارنده برسانید و در رقم عدد باینری ضرب کنید.

در هر مرحله عدد به دست آمده را یادداشت کنید و رقم را یکی جلو ببرید ( سمت جپ) و به عدد شمارنده هم یک عدد اضافه کنید.

وقتی ارقام تمام شدند، همه اعدادی که به دست آوردید را با هم جمع کنید و می بینید که حاصل 12 خواهد شد.

بیایید با هم این مراحل را تمرین کنیم:

مراحل تبدیل برای عدد باینری 1100

1- رقم سمت راست=0 ، شمارنده =0، 2 به توان 0 = 0 و 0*0 =0، پس عدد 0 را یادداشت می کنیم ( البته 0 در جمع بی تاثیر است و می توانیم یادداشت نکنیم.)

2- رقم بعدی = 0، شمارنده = 1، 2 به توان 1 = 2، 2*0=0.(مانند مرحله قبل نیازی به یادداشت نیست)

3- رقم بعدی = 1، شمارنده = 2، 2 به توان 2 = 4، 4*1 =4 پس عدد 4 را یادداشت میکنیم.

4- رقم آخر = 1، شمارنده = 3، 2 به توان 3 = 8، 8*1 = 8، عدد 8 را نیز یادداشت میکنیم.

5- حاصل تبدیل برابر است با حاصل جمع اعدادی که در مراحل قبل یادداشت کردیم: 0+0+4+8 که پاسخ همان عدد 12 است.

امیدواریم که از این توضیحات لذت برده باشید. برای آشنایی بیشتر با زبان های برنامه نویسی ماشین و سطح پایین می توانید به مقاله “زبان‌های برنامه نویسی و انواع آن‌ها” مراجعه کنید.

برای نوشتن دیدگاه باید وارد بشوید.