رفتن به محتوای اصلی
مدار منطقی درس‌نامهٔ آزاد
درس مقدماتی ۱۸ دقیقه

کدهای دودویی و ذخیره‌سازی

کد BCD، کد گری، افزون-۳ و اسکی؛ و اینکه بیت‌ها کجا می‌خوابند: ثبات‌ها و حافظه.

هدف این درس

بتوانی عددها را در کدهای BCD و گری بنویسی و نقش ثبات را در ذخیرهٔ موقت توضیح دهی.

در این مطلب ۵

یک رشته بیت، چند معنا

تا اینجا هر رشتهٔ بیت را «عدد دودویی» خواندی. اما معنا قرارداد است. گاهی لازم است عددهای دهدهی را رقم‌به‌رقم نگه داریم (مثل نمایشگر ماشین‌حساب)، گاهی حروف را کد کنیم، و گاهی خاصیتی مثل «تک‌بیت‌تغییر» بخواهیم. به هر قرارداد، یک کد دودویی می‌گوییم.

BCD: هر رقم دهدهی، چهار بیت

تعریف کد BCD

نمایش هر رقم دهدهی با چهار بیت دودوییِ معادلش. ترکیب‌های ۱۰۱۰ تا ۱۱۱۱ (۱۰ تا ۱۵) در BCD معتبر نیستند و استفاده نمی‌شوند.

مثلاً . دقت کن این با عدد دودویی ۳۹۶ فرق دارد! BCD برای ورودی/خروجی دهدهی (ماشین‌حساب، ساعت دیجیتال) راحت است، ولی برای محاسبهٔ داخلی حیف‌ومیل است: شش ترکیب از شانزده ترکیب هدر می‌رود.

کد گری: همسایه‌ها فقط یک بیت فرق دارند

تعریف کد گری (Gray)

کدی که در آن عددهای پشت سر هم فقط در یک بیت با هم اختلاف دارند.

دنبالهٔ سه‌بیتی گری: ۰۰۰، ۰۰۱، ۰۱۱، ۰۱۰، ۱۱۰، ۱۱۱، ۱۰۱، ۱۰۰. چرا مهم است؟ فرض کن حسگری موقعیت یک محور چرخان را می‌خواند؛ در لحظهٔ گذر از یک عدد به بعدی، اگر دو بیت هم‌زمان عوض شوند، مدار ممکن است وسط راه یک مقدار اشتباهِ گذرا بخواند. در گری فقط یک بیت عوض می‌شود، پس خطای گذرا ممکن نیست.

قانون تبدیل دودویی به گری: پرارزش‌ترین بیت سر جایش می‌ماند و هر بیت دیگر، XOR آن با بیت سمت چپش است. مثلاً .

افزون-۳ و اسکی

  • افزون-۳ (Excess-3): هر رقم دهدهی به‌علاوهٔ ۳، در چهار بیت. مثلاً ۵ می‌شود ۱۰۰۰. مزیتش این است که مکمل نه‌تایی یک رقم دهدهی با معکوس‌کردن بیت‌ها به دست می‌آید (خودمکمل است).
  • اسکی (ASCII): کد ۷ بیتی حروف و نمادها. مثلاً ‘A’ برابر ۶۵ دهدهی و ‘a’ برابر ۹۷ است. هر متنی که می‌خوانی، در حافظه همین رشته‌های بیت است.
برداشت نادرست رایج

اشتباه رایج

BCD همان عدد دودویی است.

تصحیح

در BCD هر رقم دهدهی جداگانه کد می‌شود (۳۹۶ می‌شود ۱۲ بیت)، ولی مقدار دودویی ۳۹۶ فقط ۹ بیت است. BCD برای نمایش دهدهی است، نه برای محاسبهٔ فشرده.

بیت‌ها کجا می‌خوابند؟ ثبات‌ها

مدارهای ترکیبی که در فصل ۴ می‌بینی، حافظه ندارند: خروجی‌شان فقط به ورودیِ همین لحظه بستگی دارد. پس عددها را کجا نگه داریم؟

تعریف ثبات (Register)

گروهی از سلول‌های حافظهٔ یک‌بیتی که یک کلمهٔ چندبیتی را موقتاً نگه می‌دارند. پردازنده عددها را از حافظه به ثبات می‌آورد، رویشان حساب می‌کند و نتیجه را برمی‌گرداند.

هر سلول یک بیت نگه می‌دارد و همهٔ سلول‌ها با یک سیگنال مشترک (کلاک) هم‌زمان به‌روزرسانی می‌شوند. در فصل ۵ می‌بینی که همین سلول‌های ساده چطور از ترکیب گیت‌ها ساخته می‌شوند — و آن‌وقت دایرهٔ فصل ۱ کامل می‌شود: از بیت شروع کردی و به خانهٔ بیت رسیدی.

مطالب مرتبط

از همین بخش و با برچسب‌های مشترک

این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

وضعیت پیشرفت برای کدهای دودویی و ذخیره‌سازی