اعداد باینری چیست؟ آموزش سیستم دودویی از صفر تا کاربرد در الکترونیک
اعداد باینری زبان پایه بسیاری از مدارهای دیجیتال، کامپیوترها و میکروکنترلرها هستند. در این سیستم فقط دو رقم 0 و 1 وجود دارد؛ با این حال، همین دو رقم میتوانند عدد، متن، تصویر، دستورهای پردازنده و حتی وضعیت پایههای یک میکروکنترلر را نمایش دهند.
اگر با Arduino، ESP32، رجیسترهای میکروکنترلر، گیتهای منطقی یا مدارهای دیجیتال کار کنید، خیلی زود با عباراتی مثل Bit، Byte، Binary، HIGH، LOW و 0b1010 روبهرو خواهید شد. بنابراین شناخت سیستم باینری فقط یک موضوع ریاضی نیست، بلکه یکی از پایههای مهم الکترونیک دیجیتال محسوب میشود.
در این مقاله از پژوهشگران الکترونیک و رباتیک، ابتدا سیستم باینری را از پایه بررسی میکنیم. سپس روش تبدیل اعداد دودویی به دهدهی، مفهوم بیت و بایت و در نهایت کاربرد صفر و یک در مدارهای واقعی را یاد میگیریم.
💡 اعداد باینری در یک نگاه
2
0 و 1
Bit
1 Byte
LOW / HIGH
مدار دیجیتال و پردازنده
اعداد باینری چیست؟
اعداد باینری یا اعداد دودویی، اعدادی هستند که فقط با دو رقم 0 و 1 نوشته میشوند. به همین دلیل، این سیستم را سیستم عددی مبنای 2 یا Base-2 مینامند.
در مقابل، سیستم عددی روزمره ما از ده رقم 0 تا 9 استفاده میکند و در نتیجه مبنای 10 یا Decimal است. بنابراین تفاوت اصلی این دو سیستم در تعداد ارقامی است که برای نمایش عدد در اختیار دارند.
| سیستم عددی | مبنا | ارقام مورد استفاده | مثال |
|---|---|---|---|
| Binary | 2 | 0 و 1 | 1011 |
| Decimal | 10 | 0 تا 9 | 275 |
| Hexadecimal | 16 | 0 تا 9 و A تا F | 3F |
چرا مدارهای دیجیتال از اعداد باینری استفاده میکنند؟
مدارهای الکترونیکی دیجیتال میتوانند بین دو محدوده منطقی مشخص تمایز ایجاد کنند. برای مثال، یک ورودی ممکن است در محدوده LOW یا HIGH قرار بگیرد.
این دو وضعیت معمولاً با 0 و 1 نمایش داده میشوند. در نتیجه، سیستم باینری روش مناسبی برای نمایش و پردازش اطلاعات در مدارهای دیجیتال است.
علاوه بر این، پیادهسازی سختافزاری دو وضعیت مشخص نسبت به سیستمهایی با تعداد زیادی سطح منطقی سادهتر و مقاومتر است. به همین دلیل، بیشتر سیستمهای دیجیتال مدرن بر پایه منطق دودویی ساخته میشوند.
⚠️ صفر و یک الزاماً یعنی 0 و 5 ولت نیست
Logic 0 و Logic 1 مفهوم منطقی هستند، نه یک ولتاژ ثابت جهانی. بنابراین سطح HIGH و LOW به خانواده منطقی، ولتاژ تغذیه و دیتاشیت قطعه بستگی دارد. برای مثال، یک سیستم 3.3 ولتی و یک مدار 5 ولتی معمولاً آستانههای یکسانی ندارند.
تفاوت Binary 0 و Logic 0 چیست؟
Binary 0 یک رقم در سیستم عددی باینری است؛ در مقابل، Logic 0 یک وضعیت الکتریکی و منطقی در مدار دیجیتال محسوب میشود.
برای مثال، ممکن است در یک رجیستر مقدار یک بیت برابر صفر باشد. در سطح نرمافزار این مقدار یک Binary 0 است، در حالی که سختافزار آن را با یک سطح ولتاژ معتبر در محدوده LOW نمایش میدهد.
بنابراین عدد باینری و سطح منطقی به یکدیگر مرتبطاند، اما نباید این دو مفهوم را کاملاً یکسان در نظر گرفت.
بیت چیست؟
هر رقم از یک عدد باینری را یک Bit مینامیم. در واقع Bit مخفف عبارت Binary Digit است و تنها میتواند مقدار 0 یا 1 داشته باشد.
بنابراین یک بیت دو وضعیت ممکن دارد:
- 0
- 1
1 Bit → 2 حالت
با چند بیت چند حالت میتوان ساخت؟
هر زمان یک بیت دیگر به مجموعه اضافه میشود، تعداد حالتهای ممکن دو برابر خواهد شد. بنابراین برای محاسبه تعداد حالتها میتوان از رابطه زیر استفاده کرد:
تعداد حالتها = 2n
در این رابطه n تعداد بیتها است.
| تعداد بیت | تعداد حالت | بازه Unsigned |
|---|---|---|
| 1 | 2 | 0 تا 1 |
| 2 | 4 | 0 تا 3 |
| 4 | 16 | 0 تا 15 |
| 8 | 256 | 0 تا 255 |
| 16 | 65,536 | 0 تا 65,535 |
بایت چیست و چه ارتباطی با باینری دارد؟
مجموعهای شامل 8 بیت را معمولاً یک Byte مینامیم. از آنجا که هر بیت دو وضعیت دارد، یک بایت میتواند 256 ترکیب مختلف ایجاد کند.
📦 یک بایت چقدر اطلاعات دارد؟
یک Byte شامل 8 Bit است؛ بنابراین:
28 = 256
در نتیجه، یک مقدار 8 بیتی بدون علامت میتواند اعداد 0 تا 255 را نمایش دهد.
ارزش مکانی در اعداد باینری چگونه محاسبه میشود؟
در سیستم Decimal هر ستون یک توان از 10 را نمایش میدهد. برای مثال، مقادیر مکانی میتوانند 1، 10، 100 و 1000 باشند.
در مقابل، در اعداد باینری وزن ستونها بر اساس توانهای 2 تعیین میشود:
128 – 64 – 32 – 16 – 8 – 4 – 2 – 1
بنابراین با هر حرکت از راست به چپ، ارزش مکانی بیت دو برابر میشود. همین موضوع پایه تبدیل Binary به Decimal است.
مثال: عدد باینری 1011 یعنی چه؟
برای درک بهتر، عدد 1011₂ را در نظر بگیرید. در این عدد، وزن بیتها از سمت راست برابر 1، 2، 4 و 8 است.
| بیت | وزن | مقدار نهایی |
|---|---|---|
| 1 | 8 | 8 |
| 0 | 4 | 0 |
| 1 | 2 | 2 |
| 1 | 1 | 1 |
اکنون کافی است مقادیر فعال را با هم جمع کنیم:
8 + 0 + 2 + 1 = 11
در نتیجه 1011 در مبنای 2 برابر با 11 در مبنای 10 است.
تبدیل اعداد باینری به دهدهی چگونه انجام میشود؟
برای تبدیل Binary به Decimal، ابتدا وزن هر بیت را مشخص کنید. سپس فقط وزن بیتهایی را که مقدارشان 1 است با هم جمع کنید.
برای مثال عدد باینری زیر را در نظر بگیرید:
110101₂
وزن بیتهای فعال برابر با 32، 16، 4 و 1 است. بنابراین:
32 + 16 + 4 + 1 = 53
110101₂ = 53₁₀
تبدیل عدد دهدهی به باینری چگونه انجام میشود؟
یکی از روشهای ساده برای تبدیل Decimal به Binary، تقسیم متوالی عدد بر 2 است. در هر مرحله باید باقیمانده را یادداشت کنید؛ سپس در پایان، باقیماندهها از پایین به بالا خوانده میشوند.
برای مثال میخواهیم عدد 13 را به باینری تبدیل کنیم:
| تقسیم | خارج قسمت | باقیمانده |
|---|---|---|
| 13 ÷ 2 | 6 | 1 |
| 6 ÷ 2 | 3 | 0 |
| 3 ÷ 2 | 1 | 1 |
| 1 ÷ 2 | 0 | 1 |
با خواندن باقیماندهها از پایین به بالا به عدد زیر میرسیم:
13₁₀ = 1101₂
LSB و MSB چیست؟
هنگام کار با اعداد چندبیتی معمولاً دو اصطلاح مهم LSB و MSB دیده میشوند.
- LSB یا Least Significant Bit: بیتی که کمترین ارزش مکانی را دارد.
- MSB یا Most Significant Bit: بیتی که بیشترین ارزش مکانی را دارد.
برای مثال در مقدار هشتبیتی 10110101، بیت سمت راست وزن 1 دارد و LSB است. در مقابل، بیت سمت چپ وزن 128 دارد و MSB محسوب میشود.
منظور از Logic HIGH و Logic LOW چیست؟
در مدارهای دیجیتال، وضعیتهای منطقی با محدودههای واقعی ولتاژ نمایش داده میشوند. معمولاً LOW نماینده Logic 0 و HIGH نماینده Logic 1 است.
با این حال، ولتاژ HIGH و LOW برای تمام قطعات یکسان نیست. برای مثال، میکروکنترلر 3.3 ولتی و یک مدار منطقی 5 ولتی ممکن است آستانههای متفاوتی داشته باشند.
بنابراین هنگام اتصال دو مدار دیجیتال به یکدیگر، فقط توجه به عبارت HIGH و LOW کافی نیست و باید مشخصات الکتریکی ورودی و خروجی بررسی شوند.
📄 دیتاشیت را بررسی کنید
پارامترهایی مانند VIH، VIL، VOH و VOL مشخص میکنند چه ولتاژی بهعنوان HIGH یا LOW معتبر است. در نتیجه، بررسی این پارامترها برای اتصال صحیح دو مدار دیجیتال اهمیت زیادی دارد.
آیا سیگنال دیجیتال فقط 0 ولت و 5 ولت است؟
خیر. این تصور یکی از اشتباهات متداول در آموزشهای مقدماتی است؛ زیرا بسیاری از مدارهای امروزی با منطق 3.3 ولت یا حتی ولتاژهای پایینتر کار میکنند.
علاوه بر این، Logic HIGH لزوماً دقیقاً برابر ولتاژ تغذیه و Logic LOW نیز همیشه دقیقاً صفر ولت نیست. در عمل، محدودههای مشخصی برای تشخیص هر وضعیت تعریف میشوند.
به همین دلیل، برای اتصال صحیح میکروکنترلرها، سنسورها و ICهای دیجیتال باید دیتاشیت هر قطعه بررسی شود.
تفاوت سیگنال آنالوگ و دیجیتال چیست؟
سیگنال آنالوگ میتواند در یک بازه، تعداد زیادی مقدار پیوسته داشته باشد. برای مثال، خروجی یک سنسور ممکن است بین 0.5 تا 4 ولت بهصورت پیوسته تغییر کند.
در مقابل، سیستم دیجیتال اطلاعات را به وضعیتهای گسسته تبدیل میکند. بنابراین پردازنده میتواند این وضعیتها را به شکل بیتهای باینری پردازش کند.
| ویژگی | آنالوگ | دیجیتال |
|---|---|---|
| مقادیر | پیوسته | گسسته |
| مثال | ولتاژ سنسور آنالوگ | HIGH / LOW |
| نمایش اطلاعات | دامنه پیوسته | کد دیجیتال |
ADC چه ارتباطی با اعداد باینری دارد؟
فرض کنید یک سنسور دما ولتاژ آنالوگ تولید میکند، اما میکروکنترلر باید این مقدار را به شکل عدد پردازش کند. در چنین شرایطی ADC یا Analog-to-Digital Converter وارد عمل میشود.
ADC ولتاژ آنالوگ را نمونهبرداری کرده و سپس نتیجه را به یک مقدار دیجیتال تبدیل میکند. در نهایت، این مقدار داخل میکروکنترلر بهصورت بیتهای باینری ذخیره و پردازش میشود.
برای مثال یک ADC دهبیتی میتواند:
210 = 1024
کد عددی مختلف تولید کند.
اعداد باینری در Arduino چه کاربردی دارند؟
هنگام برنامهنویسی Arduino، حتی اگر مستقیماً یک عدد باینری ننویسید، باز هم با منطق دودویی سروکار دارید. برای مثال HIGH و LOW دو وضعیت منطقی هستند که در توابع دیجیتال استفاده میشوند.
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(LED_BUILTIN, LOW);
همچنین در C و C++ میتوان مقدار باینری را با پیشوند 0b نوشت:
byte value = 0b10101010;
این مقدار 8 بیت دارد و در سیستم دهدهی برابر با 170 است. بنابراین نمایش باینری گاهی در برنامهنویسی Embedded خواندن وضعیت بیتها را بسیار سادهتر میکند.
باینری در رجیسترهای میکروکنترلر چرا مهم است؟
یکی از کاربردهای مهم اعداد باینری در الکترونیک کار با رجیسترهای میکروکنترلر است. هر رجیستر از مجموعهای بیت تشکیل میشود و هر بیت ممکن است وظیفه متفاوتی داشته باشد.
برای مثال، یک بیت میتواند تایمر را فعال کند، در حالی که بیت دیگری وضعیت Interrupt را تعیین میکند. علاوه بر این، گاهی چند بیت کنار هم برای انتخاب یک Mode مشخص استفاده میشوند.
در نتیجه، شناخت ساختار باینری به شما اجازه میدهد بدون تغییر سایر بیتها، فقط بخش موردنظر رجیستر را کنترل کنید.
Bit Mask چیست؟
Bit Mask روشی برای انتخاب یا تغییر بیتهای مشخص در یک عدد است. این تکنیک در برنامهنویسی میکروکنترلرها، درایورها و رجیسترهای سختافزاری بسیار پرکاربرد است.
برای مثال الگوی زیر فقط یک بیت را فعال دارد:
00100000
با استفاده از عملگرهای Bitwise میتوان این بیت را فعال، غیرفعال یا بررسی کرد؛ بدون اینکه سایر بیتهای رجیستر تغییر کنند.
🧠 چرا باید Binary را واقعاً یاد بگیریم؟
ممکن است هنگام استفاده از توابع ساده Arduino نیازی به کار مستقیم با بیتها نداشته باشید؛ اما زمانی که وارد رجیسترها، پروتکلهای ارتباطی، درایورها و Embedded Systems میشوید، درک باینری عملاً ضروری است.
اعداد باینری چه ارتباطی با گیتهای منطقی دارند؟
گیتهای منطقی مانند AND، OR، NOT و XOR مستقیماً روی وضعیتهای منطقی 0 و 1 کار میکنند. بنابراین جبر منطقی و سیستم باینری ارتباط بسیار نزدیکی با یکدیگر دارند.
برای مثال، خروجی گیت AND فقط زمانی 1 میشود که هر دو ورودی 1 باشند:
| A | B | Output |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
این نوع جدول را Truth Table یا جدول درستی مینامند و برای بررسی رفتار گیتها و مدارهای منطقی استفاده میشود.
چرا Hexadecimal هم در الکترونیک زیاد استفاده میشود؟
اعداد باینری برای سختافزار بسیار مناسب هستند؛ با این حال، رشتههای طولانی صفر و یک برای انسان خوانایی کمی دارند. به همین دلیل، برنامهنویسان و طراحان مدار اغلب از سیستم Hexadecimal استفاده میکنند.
مزیت مهم Hex این است که هر چهار بیت باینری دقیقاً با یک رقم Hex نمایش داده میشوند. در نتیجه، نمایش مقادیر رجیسترها و آدرسهای حافظه کوتاهتر و خواناتر میشود.
| Binary | Decimal | Hex |
|---|---|---|
| 0000 | 0 | 0 |
| 1001 | 9 | 9 |
| 1010 | 10 | A |
| 1111 | 15 | F |
مثال واقعی: چرا عدد 255 در Arduino زیاد دیده میشود؟
عدد 255 یکی از مقادیر شناختهشده در سیستمهای دیجیتال است؛ زیرا بزرگترین عدد قابل نمایش با 8 بیت Unsigned محسوب میشود.
11111111₂ = 255₁₀
به همین دلیل، بازه 0 تا 255 را در سیستمهای 8 بیتی، رجیسترها، دادههای تصویری و بسیاری از کاربردهای دیجیتال زیاد مشاهده میکنیم.
آیا باینری فقط برای نمایش عدد استفاده میشود؟
خیر. بیتها ذاتاً فقط صفر و یک هستند، اما معنی آنها به نحوه تفسیر سیستم بستگی دارد.
برای مثال، مجموعهای از بیتها میتواند نماینده موارد زیر باشد:
- عدد
- حرف و متن
- تصویر
- صدا
- دستور پردازنده
- وضعیت ورودی و خروجی
- آدرس حافظه
- داده سنسور
بنابراین صفر و یک بهتنهایی معنای «تصویر» یا «حرف» ندارند؛ بلکه قرارداد و نحوه تفسیر داده است که معنای نهایی را مشخص میکند.
اشتباهات رایج درباره اعداد باینری
| برداشت اشتباه | واقعیت |
|---|---|
| Logic 1 همیشه 5V است | سطح منطقی به مدار و دیتاشیت بستگی دارد |
| باینری فقط مخصوص کامپیوتر است | مدارهای دیجیتال نیز بر پایه مفاهیم باینری کار میکنند |
| عدد 10 باینری همان ده است | 10₂ در Decimal برابر 2 است |
| هر 8 بیت همیشه عدد 0 تا 255 است | نحوه تفسیر داده میتواند Signed، Unsigned یا غیرعددی باشد |
تمرین سریع اعداد باینری
🧩 قبل از دیدن جواب حل کنید
سؤال 1: عدد 1001 در مبنای 10 چند است؟
سؤال 2: عدد دهدهی 7 در باینری چگونه نوشته میشود؟
سؤال 3: یک مقدار 4 بیتی چند حالت مختلف دارد؟
پاسخ 1: 9
پاسخ 2: 111
پاسخ 3: 16 حالت
بعد از یادگیری اعداد باینری چه چیزی بخوانیم؟
پس از یادگیری اعداد باینری بهتر است سراغ مفاهیمی بروید که مستقیماً بر پایه همین سیستم ساخته شدهاند.
برای شروع، ترتیب زیر مسیر مناسبی است:
- تبدیل Binary، Decimal و Hexadecimal
- گیتهای منطقی
- جبر بولی
- Bitwise Operators
- رجیسترهای میکروکنترلر
- ADC و DAC
- پروتکلهای دیجیتال
در نتیجه، بعد از این مباحث میتوانید ارتباط بین صفر و یکهای ساده و عملکرد واقعی میکروکنترلر را بسیار بهتر درک کنید.
🔬 باینری را روی مدار واقعی تجربه کنید
برای یادگیری بهتر، مفاهیم باینری را فقط روی کاغذ تمرین نکنید. برای مثال، با یک برد میکروکنترلر میتوانید HIGH و LOW، ADC، بیتها و رجیسترها را در یک مدار واقعی بررسی کنید.
جمعبندی؛ اعداد باینری پایه مدارهای دیجیتال هستند
اعداد باینری بر مبنای 2 ساخته شدهاند و تنها از دو رقم 0 و 1 استفاده میکنند. هر رقم باینری یک Bit است و ارزش هر بیت نیز بر اساس توانهای عدد 2 تعیین میشود.
با این حال، اهمیت باینری فقط به تبدیل عددها محدود نمیشود. در مدارهای دیجیتال، صفر و یک برای نمایش وضعیتهای منطقی استفاده میشوند و مجموعه بیتها میتوانند داده، دستور، آدرس حافظه یا وضعیت یک بخش سختافزاری را نمایش دهند.
همچنین دیدیم که Logic 0 و Logic 1 را نباید همیشه برابر 0 و 5 ولت در نظر گرفت؛ زیرا آستانه واقعی هر سطح منطقی به سختافزار وابسته است. بنابراین برای طراحی مدار واقعی، دیتاشیت همچنان مرجع اصلی شما خواهد بود.
در نهایت، اگر قصد دارید وارد برنامهنویسی میکروکنترلر، Arduino، ESP32 یا طراحی مدارهای دیجیتال شوید، یادگیری Bit، Byte، Binary، MSB، LSB و سیستمهای عددی یکی از پایههای ضروری مسیر شما است.
💬 یک تست سریع
حالا بدون استفاده از ماشینحساب، عدد باینری زیر را به Decimal تبدیل کنید:
101101
سوالات متداول درباره اعداد باینری
عدد باینری چیست؟
عدد باینری عددی در سیستم مبنای 2 است که فقط از دو رقم 0 و 1 تشکیل میشود. همچنین هر رقم این سیستم یک بیت نام دارد.
چرا کامپیوتر از صفر و یک استفاده میکند؟
زیرا مدارهای دیجیتال میتوانند دو وضعیت منطقی متمایز مانند LOW و HIGH را با اطمینان تشخیص دهند. بنابراین این دو وضعیت بهصورت صفر و یک نمایش داده میشوند.
فرق Bit و Byte چیست؟
Bit کوچکترین واحد باینری است و فقط مقدار 0 یا 1 دارد. در مقابل، مجموعهای شامل 8 بیت معمولاً یک Byte را تشکیل میدهد.



