همهی ما تا به حال شنیدهایم که کامپیوترها با صفر و یک کار میکنند. اما شاید برامون سوال شده باشه که اونا چه جوری با صفر و یک کار میکنند و این حجم عظیمی از اطلاعات رو با این دو تا عدد پردازش می کنند؟ در این مقاله قصد دارم تا به پایه ترین مفهوم در علم کامپیوتر یعنی اعداد باینری بپردازم.
بیاین اینطور شروع کنیم که ما آدما قبل از پیدایش کامپیوترها برای این که بتونیم با هم دیگه ارتباط برقرار کنیم اومده بودیم برای خودمون یک سری قواعد و زبان هایی رو تعریف کرده بودیم. هر قوم و تمدنی برای خودشون. از تمدنهای گذشته که با زبانهای خاصی مثل میخی سر و کار داشتند تا به امروز که زبان های بین المللی مثل انگلیسی که در جهان رایجه. و خب میدونید که هدف اصلی اونا ایجاد ارتباط هستش.
ما آدما همونطور که مشغول زندگی خودمون بودیم، یهو سر و کلهی کامپیوترها پیدا شد و ما تصمیم گرفتیم برای اینکه بتونیم با اونا ارتباط برقرار کنیم یه الفبا و زبانی رو براش تعریف کنیم و خلاصه نتیجه این شد که بعد از مدتها بحث به این نتیجه رسیدند که الفبایی رو براش ابداع کنند. الفبایی به وسعت دو حرف!
جالبه نه؟! تصور کنید بعضی تمدنها مثل چینیها حدود سه هزارتا حرف فقط تو الفباشون دارند اون وقت یه تمدن مدرنی مثل کامپیوتر فقط با دو تا چیز سر و کار داره و اون صفر و یکه! از کارهای سادهای مثل نوشتن یه متن گرفته تا کارای خفنی مثل بازیهای گرافیک بالا رو کامپیوترها انجام میدن. اما خب یه دونه صفر و یک خالی که به درد ما نمیخوره خیلی کاربرد داشته باشه اینه که بگیم کامپیوتر ما خاموش هستش یا روشن. پس اومدن چیکار کردن؟
توی زبانهای طبیعی مثل فارسی هم حروف الفبا به تنهایی کاربردی ندارند و ما مجبوریم که اونا رو ترکیب کنیم تا کلمات به وجود بیان و حالا یه چیز معناداری بدست بیاد. بنیان گذاران علم کامپیوتر هم گفتند که ما هم بیایم این صفر و یکها رو کنار هم قرار بدیم شاید یه چیز معناداری از آب در بیاد!
بیاین با یک مثال شروع کنیم. یه عددی رو در نظر بگیرین که فقط شامل صفر و یک باشه مثل : 1010
ما این عدد رو می خونیم صد و یک.
اما کامپیوترها این عدد رو 10 در نظر می گیرند. چه جوری؟
اینجا میخوایم یه خورده وارد تئوری نظریه اعداد بشیم. اما نگران نباشید، سعی می کنم به زبان ساده این موارد رو توضیح بدم.
همون طور که میدونید مبنای اعداد ما ده هستش. از عدد 0 تا 9. احتمالا به این علت که ما چون ده تا انگشت داریم و معمولا محاسبتمون رو اصطلاحا سرانگشتی انجام میدیم کار کردن با اون راحت تره! همهی ما سالیان سال با این مبنا کار کردیم اما شاید از تئوری و پشت پرده اون خبر نداشته باشیم. بیاین کمی بیشتر این موضوع رو توضیح بدیم.
اجازه بدین چند تا مثال از اعداد در مبنای ده با هم دیگه کار کنیم.
همونطور که دیدین این عدد از حاصل جمع ضرب ارقام به ترتیب در یکان و دهگان و صدگان و … به دست میاد.
دیدین تا اینجا چیز خاصی یاد نگرفتیم و همهمون بلد بودیم. حالا بیاین یه تغییر کوچک اعمال کنیم و یه مبنای جدیدی درست کنیم، مبنایی که کامپیوترها باهاش راحت ترند؛ مبنای دو.
که به این اعداد در مبنای دو اصطلاحا اعداد باینری یا دودویی هم میگن.
تفاوت این مبنای با مبنای ده اینه که به جای اینکه توانها از راست به چپ ده برابر بشن، اینجا دو برابر میشن.
و تفاوت دیگه اینکه از ارقام 0 تا 9 فقط اعداد صفر و یک مجازه.
حالا برای اینکه بهتر متوجه بشین بیاین چند مثال رو با هم ببینیم:
همون طور که تو مثالهای بالا دیدین این اعداد شبیه همون اعدادی هستن که ما قبلا باهاشون کار میکردیم، ولی ارقام مجازشون صفر و یک هستش و ارزش ارقامش از راست به چپ به جای ده برابر شدن دو برابر میشن.
تا اینجا ما یه آشنایی با مبنای دو و مفهوم باینری پیدا کردیم و تونستیم یاد بگیریم که مبنای دو رو به ده تبدیل کنیم. البته تو این مقاله نحوهی تبدیل مبنای ده به دو رو نگفتهام و شاید خیلی از مباحث دیگه هم هستش که در اینجا بهش نپرداختیم. اما نگران نباشید در آینده به تدریج مقالات بیشتری رو منتشر میکنم.
بنظرم تا اینجای کار کافیه.
بیاین یه مروری داشتیم باشیم.
ما توی این مقاله با صفر و یکها و اعداد باینری آشنا شدیم و دونستیم که چرا کامپیوترها از اون استفاده میکنند. اما این تازه اول راهه! ما تا اینجا تنها چیز جدیدی که یاد گرفتیم مبنای دو یا باینری بودش مثلا هنوز نمی دونیم که کامپیوترها چه جوری عملیات محاسباتی ساده ای مثل جمع و تفریق رو روی اینا انجام میدن. یا مثلا آیا کامپیوترها فقط با اعداد سر و کار دارند مگه با اونا روزانه در حال نوشتن متن به زبان های مختلف نیستیم و خیلی چیزای دیگه.
در پایان از اینکه مقاله من رو مطالعه کردین سپاسگزارم. راستی خوشحال میشم که نظرات خودتون رو هم درباره این متن بنویسید.