تبدیل اعداد باینری به دسیمال و برعکس – به زبان ساده + فیلم آموزشی رایگان


برای مطالعه بخش اول این مطلب میتوانید از این لینک استفاده کنید. آشنایی با نحوه تبدیل اعداد باینری به دسیمال (مبنای 2 به مبنای 10) و بالعکس اهمیت بسیار زیادی دارد، زیرا دستگاه اعداد باینری پایه و اساس تمامی سیستمهای کامپیوتری و دیجیتالی است. در دستگاه شمارش دهدهی یا دسیمال (Decimal) از سیستم شمارهگذاری مبنای 10 استفاده میشود. در یک عدد دسیمال، هر یک از ارقام میتواند ده مقدار مختلف از 0 تا 9 داشته باشد که ارزش هر رقم، ده برابر رقم قبل از آن است.
دستگاه اعداد دسیمال علاوه بر در اختیار گذاشتن 10 رقم متفاوت، انجام عملیاتهای ریاضی جمع (+)، تفریق (-)، ضرب (×) و تقسیم (÷) را نیز ممکن میکند. به منظور تبدیل اعداد باینری به دسیمال، آشنایی با مفهوم وزن (Weight) مربوط به مکان هر رقم بسیار مهم است. به طور مثال، رقم ۶ در عدد 60 وزن کمتری نسبت به رقم شش در عدد 600 دارد. در نمایش دستگاه اعداد دسیمال برای مشخص کردن وزن هر یک از ارقام، از نمادهای b و q استفاده میشود. به طور کلی هر سیستم شمارهگذاری را میتوان به شکل زیر خلاصه کرد:
N = biqi
که در آن N یک عدد حقیقی مثبت، b رقم مربوطه و q مبنای عدد است. عدد صحیح i نیز میتواند مثبت، منفی و یا صفر باشد. با بسط عبارت بالا به چنین عبارتی خواهیم رسید:
N = bn qn… b3 q3 + b2 q2 + b1 q1 + b0 q0 + b-1 q-1 + b-2 q-2…
سیستم شمارهگذاری دسیمال
در هر عدد دسیمال، با حرکت از سمت راست به چپ ارقام به ترتیب مقدار یکان، دهگان، صدگان، هزارگان و ... دارند که معادل ریاضی این مقادیر به صورت 100، 101، 102، 103 و ... است. در اعداد اعشاری وزن هر مکان در سمت چپ ممیز توان مثبتی از 10 است؛ به همین ترتیب، در سمت راست ممیز و با حرکت از چپ به راست، وزن هر رقم توانهای منفی 10 مثل 10-1، 10-2، 10-3 و ... است.
به راحتی میتوان فهمید «سیستم شمارهگذاری دسیمال» از مبنای 10 استفاده میکند و مکان هر رقم نشاندهنده اهمیت یا وزن آن رقم است. اگر بخواهیم یک عدد دسیمال را با فرمول گفته شده در بالا نشان دهیم، q برابر 10 خواهد بود. به عنوان مثال، 20 معادل 101×2 و یا 400 معادل 102×4 است.

با ضرب هر یک از ارقام عددی دسیمال در وزن مخصوصش و جمع تمامی اعداد تولید شده، معادل همان عدد به دست میآید. مثلاً N = 616310 مساوی است با:
6000 + 100 + 60 + 3 = 6163
برای تأکید بیشتر بر وزن ارقام میتوان به شکل زیر نیز نشان داد:
( 6×1000 ) + ( 1×100 ) + ( 6×10 ) + ( 3×1 ) = 6163
همچنین در صورت استفاده از توانهای 10 داریم:
( 6×103 ) + ( 1×102 ) + ( 6×101 ) + ( 3×100 ) = 6163
در دستگاه اعداد دهدهی یا دسیمال، سمت چپترین رقم، پر ارزشترین رقم است که به آن Most Significant Digit) MSD) نیز گفته میشود. همچنین سمت راستترین رقم یک عدد، کم ارزشترین رقم آن است که Least Significant Digit) LSD) نیز خوانده میشود. برای مثال قبل، عدد 6 پر وزنترین رقم یا همان MSD و عدد 3 کم وزنترین رقم یا LSD است.
سیستم شمارهگذاری باینری
پرکاربردترین سیستم عددی در دیجیتال، سیستم شمارهگذاری باینری است. به طور کلی، دستگاه اعداد باینری و دستگاه اعداد دسیمال از قوانین مشابهی تبعیت میکنند، با این تفاوت که برخلاف دستگاه دسیمال که از توانهای 10 استفاده میکند، در دستگاه باینری از توانهای 2 استفاده میشود. سیستمهای دیجیتالی و کامپیوتری برای نمایش یک وضعیت، تنها از دو مقدار «0» منطقی و «1» منطقی استفاده میکنند. این «0» و «1» ها در مبنای ۲ بوده و یا ارقام باینری هستند.
یک عدد باینری مثل 101100101 به کمک رشتهای از «1»ها و «0»ها نشان داده میشود که با حرکت از سمت راست به چپ، هر رقم ارزشی دو برابر رقم قبلی دارد. اگر بخواهیم عدد باینری را در فرم N = biqi نشان دهیم، از آن جایی که هر رقم میتواند تنها دو مقدار مختلف اختیار کند، q برابر 2 خواهد بود.
همانند اعداد دسیمال، در اعداد باینری نیز هر رقم وزن مخصوص به خود را دارد. در این اعداد سمت چپترین بیت، پر ارزشترین بیت است که به آن Most Significant Bit) MSB) گفته میشود. همچنین سمت راستترین بیت عدد، کم ارزشترین بیت آن است که Least Significant Bit) LSB) نامیده میشود.
تبدیل اعداد باینری به دسیمال
LSB | رقم باینری | MSB | ||||||
20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 |
دیدیم که در دستگاه اعداد دسیمال، با حرکت به سمت چپ وزن هر رقم ده برابر رقم قبلی خواهد بود. اما همانگونه که در جدول بالا نشان داده شده، در دستگاه اعداد باینری وزن هر رقم دو برابر رقم قبلی است. لذا اولین رقم دارای وزن 1 (20)، دومین رقم دارای وزن 2 (21)، سومین رقم دارای وزن 4 (22)، چهارمین رقم دارای وزن 8 (23) و ... است.
برای مثال، تبدیل یک عدد باینری فرضی به دسیمال به صورت زیر انجام میشود:
1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | مقدار رقم دسیمال |
1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | مقدار رقم باینری |
از راست به چپ و با جمع تمامی مقادیر دسیمال در مکانهایی که معادل باینری «1» وجود دارد، خواهیم داشت:
(256) + (64) + (32) + (4) + (1) = 35710
تبدیل اعداد دسیمال به باینری
تا بدین جای کار نحوه تبدیل اعداد باینری به دسیمال را یاد گرفتهایم. حال میخواهیم با نحوه تبدیل اعداد دهدهی به باینری آشنا شویم. یکی از متداولترین روشها برای انجام این کار، روشی موسوم به «تقسیمهای متوالی بر 2» است. در این روش عدد مبنای ده را تا زمانی که خارج قسمت به صفر برسد، بر دو تقسیم میکنیم.
برای درک بهتر، عدد 29410 را به معادل باینری آن تبدیل میکنیم:
عدد اولیه: 2۹۴ | |||
تقسیم بر 2 | |||
خارج قسمت | 147 | باقیمانده | 0 (LSB) |
تقسیم بر 2 | |||
خارج قسمت | 73 | باقیمانده | 1 |
تقسیم بر 2 | |||
خارج قسمت | 36 | باقیمانده | 1 |
تقسیم بر 2 | |||
خارج قسمت | 18 | باقیمانده | 0 |
تقسیم بر 2 | |||
خارج قسمت | 9 | باقیمانده | 0 |
تقسیم بر 2 | |||
خارج قسمت | 4 | باقیمانده | 1 |
تقسیم بر 2 | |||
خارج قسمت | 2 | باقیمانده | 0 |
تقسیم بر 2 | |||
خارج قسمت | 1 | باقیمانده | 0 |
تقسیم بر 2 | |||
خارج قسمت | 0 | باقیمانده |
1 (MSB) |
همانطور که مشاهده میشود، تقسیم هر عدد دسیمال بر 2، یک خارج قسمت و یک باقیمانده خواهد داشت. اگر مقسوم عددی زوج باشد، باقیمانده صفر میشود. اما اگر مقسوم فرد باشد، باقیمانده یک خواهد بود. برای به دست آوردن معادل باینری، تنها کافی است پس از به پایان رسیدن تقسیمها، باقیماندهها را به ترتیب و از آخر به اول بنویسیم.
با به کار بردن روش «تقسیمهای متوالی بر 2» در مثال بالا، معادل باینری عدد 29410 به شکل 1001001102 به دست میآید. البته از این روش برای تبدیل اعداد به مبناهایی غیر از 2 نیز میتوان استفاده کرد.

هر «رقم باینری» یا «بیت» میتواند تنها یکی از دو مقدار «0» یا «1» را داشته باشد. این خصوصیت که مهمترین ویژگی یک سیستم شمارهگذاری باینری نیز به شمار میرود، روشی به نام «مجموع وزنها» را پدید میآورد. در این روش با حرکت از طرف LSB وزن یا ارزش هر بیت دو برابر بیت قبلی خواهد بود. تبدیل اعداد دسیمال به باینری با استفاده از هر دو روش «مجموع وزنها» و «تقسیمهای متوالی بر 2» امکانپذیر است، اما در تبدیل اعداد باینری به دسیمال تنها میتوان از روش «مجموع وزنها» استفاده کرد.
اصطلاحات رایج در سیستمهای باینری
همانند اعداد دسیمال، اعداد باینری را نیز میتوان به راحتی با یکدیگر جمع و یا از هم کم کرد. بسته به تعداد بیتهای استفاده شده، ممکن است نتیجه این عملیاتها اندازههای مختلفی داشته باشد. عموماً اعداد باینری در سه قالب بیت (bit)، بایت (byte) و کلمه (word) قرار میگیرند. هر بیت تنها یک رقم باینری، هر بایت هشت رقم باینری و هر کلمه 16 رقم باینری دارد.
گروههای چند بیتی با توجه به تعداد بیتهای تشکیلدهندهی آنها، مطابق جدول زیر نامگذاری میشوند:
تعداد ارقام باینری (تعداد بیت) | نام متداول |
1 | بیت (Bit) |
4 | نیبل (Nibble) |
8 | بایت (Byte) |
16 | کلمه (Word) |
32 | دو کلمه (Double Word) |
64 | چهار کلمه (Quad Word) |
یکی از اشتباهات رایج در هنگام تبدیل اعداد باینری به دسیمال و یا حتی دسیمال به باینری، فراموشی مبنای اعداد مورد استفاده است. به عنوان مثال در صورت فراموشی مبنای عدد 11، آن را میتوان به دو شکل خواند. اگر فرض کنیم که این عدد دهدهی است، یازده خوانده میشود. اما اگر یک عدد باینری باشد، با توجه به وزن ارقام معادل باینری عدد سه است.
یکی از راههای آسان برای جلوگیری از این اشتباه، یادداشت مبنای عدد به صورت عددی کوچک در پایین آخرین رقم است. به این عدد «زیرنویس» (Subscript) نیز گفته میشود. در مثال قبل اگر عدد مذکور باینری باشد، برای مشخص کردن مبنای 2 آن را به صورت 112 مینویسیم. اما اگر عدد دسیمال باشد، 1110 به وضوح منظور ما را خواهد رساند.

امروزه با افزایش ظرفیت میکروپروسسورها و میکروکنترلرها، مفهوم بیت کاربرد کمتری داشته و به جای آن با کنار هم قرار دادن هشت بیت، از یک بایت استفاده میشود. اکثر سختافزارهای کامپیوتری رایج مثل دیسکهای سخت و ماژولهای حافظه، اندازههایی در حد چندین مگابایت و یا حتی چندین گیگابایت دارند.
تعداد بایت ها | نام متداول |
1,024 (210) | کیلوبایت - Kilobyte) Kb) |
1,048,576 (220) | مگابایت - Megabyte) Mb) |
1,073,741,824 (230) | گیگابایت - Gigabyte) Gb) |
……… (240) | ترابایت - Terabyte) Tb) |
خلاصه
- کلمهی BIT مخفف عبارت BInary digiT است.
- هر عدد باینری تنها دو رقم مختلف دارد: «0» منطقی و «1» منطقی.
- برخلاف اعداد باینری، هر عدد دسیمال میتواند 10 رقم متفاوت از 0 تا 9 داشته باشد.
- در اعداد باینری از راست به چپ وزن هر رقم دو برابر افزایش مییابد.
- برای تبدیل اعداد دسیمال به باینری از دو روش «مجموع وزنها» و «تقسیمهای متوالی بر 2» استفاده میشود.
- به منظور جلوگیری از خطاهای احتمالی در هنگام تبدیل اعداد باینری به دسیمال و بالعکس، در پایین و سمت راست عدد، مبنای آن را یادداشت میکنیم.
همانگونه که دیدید، تبدیل اعداد باینری به اعداد دسیمال (مبنای 2 به مبنای 10) و یا تبدیل اعداد دهدهی به اعداد باینری (مبنای 10 به مبنای 2) به روشهای مختلفی انجام میشود. اما نکته بسیار مهمی که باید در هنگام تبدیل اعداد دهدهی به باینری به آن توجه شود، تشخیص کم ارزشترین بیت (LSB) و پر ارزشترین بیت (MSB) است.
در بخش بعدی از مجموعه آموزشهای مربوط به اعداد باینری، به بررسی نحوهی تبدیل اعداد باینری به اعداد هگزادسیمال (Hexadecimal) و بالعکس میپردازیم. خواهیم دید که اعداد هگزادسیمال یا مبنای 16، به کمک ارقام 0 تا 9 و تعدادی از حروف الفبای انگلیسی نشان داده میشوند.
سلام وخسته نباشی خیلی خوب بود امیدوارم همیشه موفق وسرافراز باشید
ممنون بابت آموزش خوبتون
ممنون از شما . کامل فهمیدم
سلام وقت بخیر
چرا آلفا و بتا فقط میتونن ۰و ۱ باشن؟
ممنون
سلام
اگه امکانش هست در مورد تبدیل عدد باینری اعشاری به دسیمال توضیح بدین.
ممنون
سلام نصرتاله عزیز.
در بخش «فیلم آموزشی تبدیل اعداد باینری به دسیمال» از همین مطلب، موضوعی که به آن اشاره کردهاید آموزش داده شده است.
شاد و پیروز باشید.
سلام. برادر در تبدیل دسیمال به باینری بعد از اتمام تقسیم آخرین خارج قسمت و ادامه باقیمانده از آخر به اول نوشته می شود .
…
سلام.
آنچه در متن نوشته شده صحیح است. دقت کنید تقسیم را تا جایی ادامه میدهیم که خارج قسمت صفر شد.
سالم و سربلند باشید.
ویکی فرادرس عالی
اگر امکانی قرار دهید که این صفحات با ذکر منبع امکانش باشد که (پی دی اف) شوند عالی میشه چون فقط امکان برداشت ویدئو وجود دارد
((ضمنا علاقه مندیم صاحب اثر رضایت داشته باشد))
مرسی
عالی
سلام وقتتان بخیر خیلی متشکرم بابت سایت کاملتون
آیا امکان دارد که که تبدیل اعداد اعشاری دسیمال به باینری را هم اضافه کنید
سلام وقت بخیر راجع به “همانند اعداد دهدهی، در اعداد باینری نیز هر رقم وزن مخصوص به خود را دارد. در این اعداد سمت چپترین بیت، پر ارزشترین بیت است که به آن Most Significant Bit) MSB) گفته میشود. همچنین سمت راستترین بیت عدد، کم ارزشترین بیت آن است که Least Significant Bit) LSB) نامیده میشود.”
اگر سمت چپ ترین بیت، عدد 0 باشه باز هم MSB آن صفر است؟ و اگر سمت راست ترین بیت عدد 1 باشه باز هم LSB آن 1 هست؟
ممنون میشم پاسخ دهید
سلام. وقت شما هم بهخیر. همانگونه که در تعاریف نیز ذکر شده، تنها چیزی که برای تعیین MSB و LSB وجود دارد مکان آن بیت (چپترین و راستترین) در عدد باینری است و محتوای آن (۰ یا ۱) مهم نیست. برای مثال، در عدد باینری پنجبیتی ۱۰۰۱۱ کمارزشترین بیت، سمت راستترین بیت، یعنی ۱ است. همچنین، باارزشترین بیت سمت چپترین بیت، یعنی ۱ است.
سلام وقت بخیر در قسمت تبدیل مبنا از ۱۰ به مبنای ۲ باید عدد اولیه ۲۹۴ باشه. جسارت نباشه ولی در کل جواب اون قسمت درست نیست لطفا ویرایش لازم رو انحام بدین تا دانش آموزان عزیز سردرگم نشن. خیلی ممنون از زحمات فراوان شما
سلام و وقت بهخیر.
عدد مورد نظر اصلاح شد.
از توجه و بازخورد شما سپاسگزاریم.