به دنیای صفر و یک خوش آمدید
تاحالا فکر کردی رایانه به چه زبانی حرف میزنه؟
هر دادهای در رایانه به مجموعهای از صفر و یکها تبدیل میشه. در داخل هر رایانه میلیاردها چیز کوچک وجود داره که میشه آنها را روشن یا خاموش کرد، مانند یک سوئیچ چراغ، و این دادهها را ذخیره و پردازش کرد. به این شیوه نمایش دادهها با صفر و یک، نمایش دودویی یا باینری (binary) گفته میشه.
اما رایانه چطوری کلمهها و اعداد را فقط با 0 و 1 نشان میده؟
کارتبازی
بیا برای رسیدن به جواب، با هم کارت بازی کنیم.
پنج کارت داریم که یک طرف آنها نقطهدار و طرف دیگر خالی هست. به کارتهای زیر خوب نگاه کن.
این کارتها را برای خودت بساز و بازی رو مرحله به مرحله انجام بده.
از راست به چپ به کارتها نگاه کن.
- تعداد نقطههای هر کارت را زیر آن بنویس.
- آیا میتونی تعداد نقطههای کارت بعدی را حدس بزنی؟
- آیا میتونی یک الگوی مشخص برای کارت بعدی پیدا کنی؟
با جمع کردن تعداد نقطههای بعضی از کارتها بقیه اعداد را هم میتونی بسازی. مثلا عدد 6، 15 و 21 را.
این کار را انجام بده و ببین چه اعداد دیگری رو میسازی.
وقتی کارتی به پشت هست آن را با صفر، و وقتی روی آن دیده میشه، با یک نشان میدیم. این همان سیستم عددی دودویی یا باینری است.
کارتها را به ترتیب روی میز قرار بده و اعداد مبنای دو را بساز. مثلا 01001، 10101 و 11111
اینطور مثلا میتونیم عدد 9 را بسازیم:
یعنی یک دونه 8 به علاوه یک دونه 1.
کارتهای شکل زیر عدد 5 را نشان میدهد. آیا میتونی عددهای 3، 12 و 19 را هم نشان بدی؟
تبدیل به برنامه پایتون
بیا با هم کد پایتون رو بنویسیم.
میخواهیم ببینیم هر عددی که با تایپ کردن وارد رایانه میکنیم، در حافظه رایانه به چه شکلی دیده میشود. یا بهعبارتی رایانه آن را چگونه میبیند.
برنامه یک عدد بعنوان ورودی از کاربر دریافت میکند.
چون ورودی بطور پیشفرض در پایتون بصورت رشته ذخیره میشود با متد int آن را به عدد صحیح تبدیل میکنیم.
(ضمنا این کد برای اعداد 0 تا 15 نوشته شده.)
1 |
i=int(input('Enter a decimal number[0-15]:')) |
اگر بخوایم برای دریافت ورودی در محیط ترتل باشیم، و با یک کادر پیام از کاربر بخواهیم که عدد مورد نظر را تایپ کند، کد زیر را مینویسیم. در این کد محدودهای که برای ورودی درنظر گرفتیم را نیز تعیین میکنیم. (کوچکترین و بیشترین مقدار)
1 |
i=s.numinput('Decimal to Binary','Enter a decimal number[0-15]:',minval=0,maxval=15) |
با دستور bin عدد دریافتی را به باینری تبدیل میکنیم.
1 |
b=bin(i) |
برای حذف دو کاراکتر اول، دستور را به صورت زیر میآوریم.
1 |
b=bin(i)[2:] |
با توجه به طول عدد به ابتدای آن تعدادی صفر اضافه میکنیم، تا تعداد ارقام همه آنها یکسان شود.
1 2 3 4 |
if len(b)<5: l= len(b) b = str(0) * (5 - l) + b print(b) |
برای ساخت کارتهای اعداد کد زیر را اضافه میکنیم. تا برای صفر هیچ کارتی نشان داده نشود. در واقع آن کارت را مخفی میکنیم.
1 2 3 4 |
b=list(b) for i in range(len(b)): if b[i]=='0': turtles[i].ht() |
اینکه چطور عکس کارتها در برنامه اضافه شده را میتونی در این خواندنی ببینی.
برای دانلود برنامه کامل اینجا را کلیک کن.
امروزه همه رایانهها از همین پردازش باینری پیروی میکنند. اما نوع جدیدی از رایانهها هم الان در دست تحقیق هستند که کاملا متفاوت هستند. این رایانهها، رایانههای کوانتومی هستند که میتونی اینجا باهاشون آشنا بشی.
بیشتر بخوانید