پث‌وایز

کامپیوتر چطور کار می‌کنه (How Computers Work) · درس ۲ از ۱۲ · ۱۲ دقیقه

بیت و دودویی: شمردن با کلید (Binary)

با هشت تا کلید برق شمردن دودویی رو یاد بگیر، ببین چرا یه بایت از ۰ تا ۲۵۵ رو نگه می‌داره، و بفهم حرف‌ها، رنگ‌ها و عکس‌ها چطور همه صفر و یک می‌شن.

بیت (Bit)

اسم · کامپیوتر

کوچیک‌ترین تیکه‌ی اطلاعاتی که کامپیوتر نگه می‌داره: یه کلید که یا خاموشه (0) یا روشن (1). کامپیوترها فقط از دو حالت استفاده می‌کنن چون تشخیص «ولتاژ هست» از «ولتاژ نیست» ساده و مطمئنه، حتی برای میلیاردها قطعه‌ی ریز؛ رقم سومی در کار نیست که با بقیه قاطی بشه.

یه بیت می‌تونه جواب یه سؤال بله‌یا‌نه رو نگه داره: چراغ روشنه؟ هشت تا بیت کنار هم می‌تونن یه عدد از ۰ تا ۲۵۵ رو نگه دارن.

ارزش مکانی

دودویی: ارزش مکانی‌هایی که دوبرابر می‌شن

توی عددنویسی معمولی (دهدهی)، هر جایگاه ده برابر جایگاه سمت راستشه: ۱، ۱۰، ۱۰۰، ۱۰۰۰. دودویی (Binary) هم همین‌طوره، فقط هر جایگاه دو برابر جایگاه سمت راستشه: ۱، ۲، ۴، ۸، ۱۶، ۳۲، ۶۴، ۱۲۸. توی هر جایگاه یا 0 هست یا 1، پس برای خوندن یه عدد دودویی کافیه ارزش جایگاه‌هایی رو که 1 دارن با هم جمع کنی.

۱۳ = ۸ + ۴ + ۱. زیر ۸ و ۴ و ۱ یه 1 بذار و زیر ۲ یه 0: می‌شه 1101. به‌شکل یه ردیف کامل هشت‌تایی از کلیدها می‌شه 00001101.

خودت رو امتحان کن

عدد دودویی 1010 توی دهدهی چنده؟

  1. ۱۰
  2. ۵
  3. ۱۰۱۰
  4. ۱۲
جواب رو ببین

۱۰

درسته. از راست، جایگاه‌ها ۱، ۲، ۴، ۸ هستن. 1ها زیر ۸ و ۲ نشستن، و ۸ + ۲ = ۱۰.

decimal   binary
0         0
1         1
2         10
3         11
4         100
5         101
6         110
7         111
8         1000

خروجی

هر بار یه جایگاه پر می‌شه، برمی‌گرده به 0 و یه 1 به جایگاه بعدی می‌بره، مثل وقتی که ۹ می‌شه ۱۰.

حواست باشه: «10» توی دودویی یعنی دو، نه ده. هر وقت توی این دوره 10 دیدی، ببین یه الگوی دودوییه یا یه عدد معمولی.

خودت رو امتحان کن

۶ رو به دودویی چطور می‌نویسی؟

  1. 110
  2. 101
  3. 111
  4. 1100
جواب رو ببین

110

درسته. ۶ = ۴ + ۲، پس زیر ۴ و ۲ یه 1 هست و زیر ۱ یه 0: می‌شه 110.

قدم‌به‌قدم ببین

  1. هشت تا کلید، همه خاموش

    یه ردیف هشت‌تایی از لامپ‌ها، یعنی یه بایت، که ارزش مکانی هر کدوم زیرش نوشته شده: ۱۲۸، ۶۴، ۳۲، ۱۶، ۸، ۴، ۲ و ۱. همه‌ی لامپ‌ها خاموشن، پس رقم‌ها 00000000 رو نشون می‌دن و مقدار این بایت صفره.

  2. ۸ + ۴ + ۱ = ۱۳

    لامپ‌های بالای ۸ و ۴ و ۱ رو روشن کن تا رقم‌ها بشن 00001101. ارزش جایگاه‌های روشن رو جمع کن، ۸ + ۴ + ۱، و این بایت ۱۳ رو نگه می‌داره.

  3. همه روشن: ۲۵۵

    وقتی هر هشت لامپ روشن باشن، می‌شه 11111111، یعنی ۱۲۸ + ۶۴ + ۳۲ + ۱۶ + ۸ + ۴ + ۲ + ۱ = ۲۵۵، که بزرگ‌ترین عددیه که یه بایت می‌تونه نگه داره. با حساب صفر، روی هم ۲۵۶ مقدار مختلف می‌شه.

  4. ۶۵ همون حرف A‌ـه

    حالا فقط لامپ‌های بالای ۶۴ و ۱ روشنن: 01000001، یعنی ۶۵. وقتی کامپیوتر این بایت رو به‌عنوان متن بخونه، ۶۵ کد قراردادی A بزرگه. بیت‌ها عوض نمی‌شن؛ فقط طرز خوندنشون عوض می‌شه.

خودت رو امتحان کن

یه بایت (۸ بیت) چند تا مقدار مختلف می‌تونه نگه داره؟

  1. ۸
  2. ۲۵۵
  3. ۲۵۶
  4. ۱۶
جواب رو ببین

۲۵۶

درسته. هر بیت تعداد رو دو برابر می‌کنه، پس ۸ بیت می‌شه ۲ × ۲ × ۲ × ۲ × ۲ × ۲ × ۲ × ۲ = ۲۵۶ مقدار: از ۰ تا ۲۵۵.

متن هم عدده

حرف‌ها با قرارداد

یه بایت نمی‌دونه حرفه. کامپیوترها فقط روی یه کد توافق کردن: A = ۶۵، B = ۶۶، a کوچیک = ۹۷. کد مشترک امروزی یونیکد (Unicode)‌ـه، که به هر حرفی توی هر خطی یه عدد می‌ده، از انگلیسی و فارسی تا ایموجی. توی قالب رایج UTF-8، یه حرف انگلیسی ۱ بایت جا می‌گیره و یه حرف فارسی معمولاً ۲ بایت.

حرف فارسی «ب» توی یونیکد شماره‌ی U+0628 رو داره و به‌شکل ۲ بایت ذخیره می‌شه. برای همین یه پیام فارسی معمولاً حدود دو برابر یه پیام انگلیسی با همون تعداد حرف، بایت می‌گیره.

رنگ‌ها هم عددن

هر پیکسل سه تا بایته

هر نقطه‌ی روی صفحه، یعنی یه پیکسل (Pixel)، معمولاً با سه بایت توصیف می‌شه: چقدر نور قرمز، سبز و آبی قاطی بشه، هر کدوم از ۰ تا ۲۵۵. (255, 0, 0) قرمز خالصه، (0, 0, 0) سیاهه و (255, 255, 255) سفید. یه عکس فقط یه فهرست بلند از همین عددهاست.

یه عکس ۱۲ مگاپیکسلی ۱۲ میلیون پیکسل × ۳ بایت ≈ ۳۶ مگابایت عدد خام داره. وقتی به‌شکل JPEG ذخیره بشه معمولاً چند برابر کوچیک‌تر می‌شه، چون این قالب عددها رو فشرده می‌کنه.

خودت رو امتحان کن

حرف A به‌شکل ۶۵ ذخیره می‌شه. ۶۵ به‌شکل یه بایت دودویی ۸‌بیتی چی می‌شه؟

  1. 01000001
  2. 01100101
  3. 10000010
  4. 00100001
جواب رو ببین

01000001

درسته. ۶۵ = ۶۴ + ۱، پس یه 1 زیر ۶۴ و یه 1 زیر ۱ هست و بقیه همه 0: می‌شه 01000001.

خودت رو امتحان کن

  1. با ۳ بیت می‌شه ۸ الگوی مختلف ساخت: 000، 001، 010، 011، 100، 101، 110 و 111.
  2. با ۴ بیت می‌شه ۱۶ الگوی مختلف ساخت: همون ۸ تا، یه بار با یه 0 جلوشون و یه بار با یه 1 جلوشون.

هر بار یه بیت اضافه کنی، تعداد مقدارهای ممکن چی می‌شه؟

  1. یکی زیاد می‌شه
  2. دو برابر می‌شه
  3. هشت تا زیاد می‌شه
  4. عوض نمی‌شه؛ فقط بزرگ‌ترین عدد عوض می‌شه
جواب رو ببین

دو برابر می‌شه

دقیقاً. بیت جدید می‌تونه جلوی هر الگوی قبلی 0 باشه یا 1، پس تعداد دو برابر می‌شه: ۸، ۱۶، ۳۲ و همین‌طور تا ۲۵۶ برای یه بایت.

مرور درس

  • بیت یه کلیده، خاموش (0) یا روشن (1)؛ کامپیوترها دو حالت دارن چون این دو تا رو راحت و مطمئن می‌شه از هم تشخیص داد.
  • ارزش جایگاه‌ها توی دودویی از راست دو برابر می‌شه، ۱، ۲، ۴، ۸ و همین‌طور؛ جایگاه‌هایی که 1 دارن رو جمع کن، پس 1101 می‌شه ۱۳.
  • یه بایت ۸ بیته: ۲۵۶ الگو، از ۰ تا ۲۵۵. هر بیت اضافه تعداد رو دو برابر می‌کنه.
  • متن با قرارداد عدد می‌شه: A یعنی ۶۵ (01000001)، و یونیکد همه‌ی خط‌ها رو پوشش می‌ده؛ حرف‌های فارسی معمولاً ۲ بایت می‌گیرن.
  • هر پیکسل معمولاً سه بایت قرمز، سبز و آبیه، پس یه عکس یه فهرست بلند از عدده.

فقط نخونش، نگهش دار

پث‌وایز هر ایده رو درست قبل از اینکه فراموشش کنی با یه سؤال کوتاه برمی‌گردونه. رایگان روی اندروید و وب، به فارسی و انگلیسی.

Cafe Bazaar Myket باز کردن نسخه‌ی وب

همه‌ی درس‌های این دوره

  1. توی جعبه چیه: اجزای کامپیوتر
  2. بیت و دودویی: شمردن با کلید (Binary)
  3. گیت‌های منطقی: کلیدهایی که جمع می‌کنن (Logic Gates)
  4. پردازنده: رجیسترها، ALU و ساعت (CPU)
  5. کد ماشین: برنامه به‌شکل عدد (Machine Code)
  6. واکشی، رمزگشایی، اجرا: حلقه‌ای که همه‌چیز رو اجرا می‌کنه
  7. رم: یه ردیف جعبه‌ی شماره‌دار (RAM)
  8. کش: داده‌ی داغ رو نزدیک نگه داشتن (Cache)
  9. ذخیره‌سازی و فایل‌ها: حافظه‌ای که می‌مونه
  10. پردازه‌ها: یه پردازنده، چند تا برنامه (Process)
  11. حافظه‌ی مجازی: هر برنامه نقشه‌ی خودش رو داره (Virtual Memory)
  12. کنار هم گذاشتنش: از دوبار کلیک تا برنامه‌ی در حال اجرا