آشنایی با نحوه تبدیل اعداد باینری به دسیمال (مبنای ۲ به مبنای ۱۰) و بالعکس اهمیت بسیار زیادی دارد، زیرا دستگاه اعداد باینری پایه و اساس تمامی سیستمهای کامپیوتری و دیجیتالی است. در دستگاه شمارش دهدهی یا دسیمال (Decimal) از سیستم شمارهگذاری مبنای ۱۰ استفاده میشود. در یک عدد دسیمال، هر یک از ارقام میتواند ده مقدار مختلف از ۰ تا ۹ داشته باشد که ارزش هر رقم، ده برابر رقم قبل از آن است.
دستگاه اعداد دسیمال علاوه بر در اختیار گذاشتن ۱۰ رقم متفاوت، انجام عملیاتهای ریاضی جمع (+)، تفریق (-)، ضرب (×) و تقسیم (÷) را نیز ممکن میکند. به منظور تبدیل اعداد باینری به دسیمال، آشنایی با مفهوم وزن (Weight) مربوط به مکان هر رقم بسیار مهم است. به طور مثال، رقم ۶ در عدد ۶۰ وزن کمتری نسبت به رقم شش در عدد ۶۰۰ دارد. در نمایش دستگاه اعداد دسیمال برای مشخص کردن وزن هر یک از ارقام، از نمادهای b و q استفاده میشود. به طور کلی هر سیستم شمارهگذاری را میتوان به شکل زیر خلاصه کرد:
N = biqi
که در آن N یک عدد حقیقی مثبت، b رقم مربوطه و q مبنای عدد است. عدد صحیح i نیز میتواند مثبت، منفی و یا صفر باشد. با بسط عبارت بالا به چنین عبارتی خواهیم رسید:
N = bn qn… b۳ q۳ + b۲ q۲ + b۱ q۱ + b۰ q۰ + b-۱ q-۱ + b-۲ q-۲…
در هر عدد دسیمال، با حرکت از سمت راست به چپ ارقام به ترتیب مقدار یکان، دهگان، صدگان، هزارگان و … دارند که معادل ریاضی این مقادیر به صورت ۱۰۰، ۱۰۱، ۱۰۲، ۱۰۳ و … است. در اعداد اعشاری وزن هر مکان در سمت چپ ممیز توان مثبتی از ۱۰ است؛ به همین ترتیب، در سمت راست ممیز و با حرکت از چپ به راست، وزن هر رقم توانهای منفی ۱۰ مثل ۱۰-۱، ۱۰-۲، ۱۰-۳ و … است.
به راحتی میتوان فهمید «سیستم شمارهگذاری دسیمال» از مبنای ۱۰ استفاده میکند و مکان هر رقم نشاندهنده اهمیت یا وزن آن رقم است. اگر بخواهیم یک عدد دسیمال را با فرمول گفته شده در بالا نشان دهیم، q برابر ۱۰ خواهد بود. به عنوان مثال، ۲۰ معادل ۱۰۱×۲ و یا ۴۰۰ معادل ۱۰۲×۴ است.
با ضرب هر یک از ارقام عددی دسیمال در وزن مخصوصش و جمع تمامی اعداد تولید شده، معادل همان عدد به دست میآید. مثلاً N = 6163۱۰ مساوی است با:
۶۰۰۰ + ۱۰۰ + ۶۰ + ۳ = ۶۱۶۳
برای تأکید بیشتر بر وزن ارقام میتوان به شکل زیر نیز نشان داد:
( ۶×۱۰۰۰ ) + ( ۱×۱۰۰ ) + ( ۶×۱۰ ) + ( ۳×۱ ) = ۶۱۶۳
همچنین در صورت استفاده از توانهای ۱۰ داریم:
( ۶×۱۰۳ ) + ( ۱×۱۰۲ ) + ( ۶×۱۰۱ ) + ( ۳×۱۰۰ ) = ۶۱۶۳
در دستگاه اعداد دهدهی یا دسیمال، سمت چپترین رقم، پر ارزشترین رقم است که به آن Most Significant Digit) MSD) نیز گفته میشود. همچنین سمت راستترین رقم یک عدد، کم ارزشترین رقم آن است که Least Significant Digit) LSD) نیز خوانده میشود. برای مثال قبل، عدد ۶ پر وزنترین رقم یا همان MSD و عدد ۳ کم وزنترین رقم یا LSD است.
پرکاربردترین سیستم عددی در دیجیتال، سیستم شمارهگذاری باینری است. به طور کلی، دستگاه اعداد باینری و دستگاه اعداد دسیمال از قوانین مشابهی تبعیت میکنند، با این تفاوت که برخلاف دستگاه دسیمال که از توانهای ۱۰ استفاده میکند، در دستگاه باینری از توانهای ۲ استفاده میشود. سیستمهای دیجیتالی و کامپیوتری برای نمایش یک وضعیت، تنها از دو مقدار «۰» منطقی و «۱» منطقی استفاده میکنند. این «۰» و «۱» ها در مبنای ۲ بوده و یا ارقام باینری هستند.
یک عدد باینری مثل ۱۰۱۱۰۰۱۰۱ به کمک رشتهای از «۱»ها و «۰»ها نشان داده میشود که با حرکت از سمت راست به چپ، هر رقم ارزشی دو برابر رقم قبلی دارد. اگر بخواهیم عدد باینری را در فرم N = biqi نشان دهیم، از آن جایی که هر رقم میتواند تنها دو مقدار مختلف اختیار کند، q برابر ۲ خواهد بود.
همانند اعداد دسیمال، در اعداد باینری نیز هر رقم وزن مخصوص به خود را دارد. در این اعداد سمت چپترین بیت، پر ارزشترین بیت است که به آن Most Significant Bit) MSB) گفته میشود. همچنین سمت راستترین بیت عدد، کم ارزشترین بیت آن است که Least Significant Bit) LSB) نامیده میشود.
LSB | رقم باینری | MSB | ||||||
۲۰ | ۲۱ | ۲۲ | ۲۳ | ۲۴ | ۲۵ | ۲۶ | ۲۷ | ۲۸ |
۱ | ۲ | ۴ | ۸ | ۱۶ | ۳۲ | ۶۴ | ۱۲۸ | ۲۵۶ |
دیدیم که در دستگاه اعداد دسیمال، با حرکت به سمت چپ وزن هر رقم ده برابر رقم قبلی خواهد بود. اما همانگونه که در جدول بالا نشان داده شده، در دستگاه اعداد باینری وزن هر رقم دو برابر رقم قبلی است. لذا اولین رقم دارای وزن ۱ (۲۰)، دومین رقم دارای وزن ۲ (۲۱)، سومین رقم دارای وزن ۴ (۲۲)، چهارمین رقم دارای وزن ۸ (۲۳) و … است.
برای مثال، تبدیل یک عدد باینری فرضی به دسیمال به صورت زیر انجام میشود:
۱ | ۲ | ۴ | ۸ | ۱۶ | ۳۲ | ۶۴ | ۱۲۸ | ۲۵۶ | مقدار رقم دسیمال |
۱ | ۰ | ۱ | ۰ | ۰ | ۱ | ۱ | ۰ | ۱ | مقدار رقم باینری |
از راست به چپ و با جمع تمامی مقادیر دسیمال در مکانهایی که معادل باینری «۱» وجود دارد، خواهیم داشت:
(۲۵۶) + (۶۴) + (۳۲) + (۴) + (۱) = ۳۵۷۱۰
تا بدین جای کار نحوه تبدیل اعداد باینری به دسیمال را یاد گرفتهایم. حال میخواهیم با نحوه تبدیل اعداد دهدهی به باینری آشنا شویم. یکی از متداولترین روشها برای انجام این کار، روشی موسوم به «تقسیمهای متوالی بر ۲» است. در این روش عدد مبنای ده را تا زمانی که خارج قسمت به صفر برسد، بر دو تقسیم میکنیم.
برای درک بهتر، عدد ۲۹۴۱۰ را به معادل باینری آن تبدیل میکنیم:
عدد اولیه: ۲۹۴ | |||
تقسیم بر ۲ | |||
خارج قسمت | ۱۴۷ | باقیمانده | ۰ (LSB) |
تقسیم بر ۲ | |||
خارج قسمت | ۷۳ | باقیمانده | ۱ |
تقسیم بر ۲ | |||
خارج قسمت | ۳۶ | باقیمانده | ۱ |
تقسیم بر ۲ | |||
خارج قسمت | ۱۸ | باقیمانده | ۰ |
تقسیم بر ۲ | |||
خارج قسمت | ۹ | باقیمانده | ۰ |
تقسیم بر ۲ | |||
خارج قسمت | ۴ | باقیمانده | ۱ |
تقسیم بر ۲ | |||
خارج قسمت | ۲ | باقیمانده | ۰ |
تقسیم بر ۲ | |||
خارج قسمت | ۱ | باقیمانده | ۰ |
تقسیم بر ۲ | |||
خارج قسمت | ۰ | باقیمانده | ۱ (MSB) |
همانطور که مشاهده میشود، تقسیم هر عدد دسیمال بر ۲، یک خارج قسمت و یک باقیمانده خواهد داشت. اگر مقسوم عددی زوج باشد، باقیمانده صفر میشود. اما اگر مقسوم فرد باشد، باقیمانده یک خواهد بود. برای به دست آوردن معادل باینری، تنها کافی است پس از به پایان رسیدن تقسیمها، باقیماندهها را به ترتیب و از آخر به اول بنویسیم.
با به کار بردن روش «تقسیمهای متوالی بر ۲» در مثال بالا، معادل باینری عدد ۲۹۴۱۰ به شکل ۱۰۰۱۰۰۱۱۰۲ به دست میآید. البته از این روش برای تبدیل اعداد به مبناهایی غیر از ۲ نیز میتوان استفاده کرد.
هر «رقم باینری» یا «بیت» میتواند تنها یکی از دو مقدار «۰» یا «۱» را داشته باشد. این خصوصیت که مهمترین ویژگی یک سیستم شمارهگذاری باینری نیز به شمار میرود، روشی به نام «مجموع وزنها» را پدید میآورد. در این روش با حرکت از طرف LSB وزن یا ارزش هر بیت دو برابر بیت قبلی خواهد بود. تبدیل اعداد دسیمال به باینری با استفاده از هر دو روش «مجموع وزنها» و «تقسیمهای متوالی بر ۲» امکانپذیر است، اما در تبدیل اعداد باینری به دسیمال تنها میتوان از روش «مجموع وزنها» استفاده کرد.
همانند اعداد دسیمال، اعداد باینری را نیز میتوان به راحتی با یکدیگر جمع و یا از هم کم کرد. بسته به تعداد بیتهای استفاده شده، ممکن است نتیجه این عملیاتها اندازههای مختلفی داشته باشد. عموماً اعداد باینری در سه قالب بیت (bit)، بایت (byte) و کلمه (word) قرار میگیرند. هر بیت تنها یک رقم باینری، هر بایت هشت رقم باینری و هر کلمه ۱۶ رقم باینری دارد.
گروههای چند بیتی با توجه به تعداد بیتهای تشکیلدهندهی آنها، مطابق جدول زیر نامگذاری میشوند:
تعداد ارقام باینری (تعداد بیت) | نام متداول |
۱ | بیت (Bit) |
۴ | نیبل (Nibble) |
۸ | بایت (Byte) |
۱۶ | کلمه (Word) |
۳۲ | دو کلمه (Double Word) |
۶۴ | چهار کلمه (Quad Word) |
یکی از اشتباهات رایج در هنگام تبدیل اعداد باینری به دسیمال و یا حتی دسیمال به باینری، فراموشی مبنای اعداد مورد استفاده است. به عنوان مثال در صورت فراموشی مبنای عدد ۱۱، آن را میتوان به دو شکل خواند. اگر فرض کنیم که این عدد دهدهی است، یازده خوانده میشود. اما اگر یک عدد باینری باشد، با توجه به وزن ارقام معادل باینری عدد سه است.
یکی از راههای آسان برای جلوگیری از این اشتباه، یادداشت مبنای عدد به صورت عددی کوچک در پایین آخرین رقم است. به این عدد «زیرنویس» (Subscript) نیز گفته میشود. در مثال قبل اگر عدد مذکور باینری باشد، برای مشخص کردن مبنای ۲ آن را به صورت ۱۱۲ مینویسیم. اما اگر عدد دسیمال باشد، ۱۱۱۰ به وضوح منظور ما را خواهد رساند.
امروزه با افزایش ظرفیت میکروپروسسورها و میکروکنترلرها، مفهوم بیت کاربرد کمتری داشته و به جای آن با کنار هم قرار دادن هشت بیت، از یک بایت استفاده میشود. اکثر سختافزارهای کامپیوتری رایج مثل دیسکهای سخت و ماژولهای حافظه، اندازههایی در حد چندین مگابایت و یا حتی چندین گیگابایت دارند.
تعداد بایت ها | نام متداول |
۱,۰۲۴ (۲۱۰) | کیلوبایت – Kilobyte) Kb) |
۱,۰۴۸,۵۷۶ (۲۲۰) | مگابایت – Megabyte) Mb) |
۱,۰۷۳,۷۴۱,۸۲۴ (۲۳۰) | گیگابایت – Gigabyte) Gb) |
……… (۲۴۰) | ترابایت – Terabyte) Tb) |
همانگونه که دیدید، تبدیل اعداد باینری به اعداد دسیمال (مبنای ۲ به مبنای ۱۰) و یا تبدیل اعداد دهدهی به اعداد باینری (مبنای ۱۰ به مبنای ۲) به روشهای مختلفی انجام میشود. اما نکته بسیار مهمی که باید در هنگام تبدیل اعداد دهدهی به باینری به آن توجه شود، تشخیص کم ارزشترین بیت (LSB) و پر ارزشترین بیت (MSB) است.
در بخش بعدی از مجموعه آموزشهای مربوط به اعداد باینری، به بررسی نحوهی تبدیل اعداد باینری به اعداد هگزادسیمال (Hexadecimal) و بالعکس میپردازیم. خواهیم دید که اعداد هگزادسیمال یا مبنای ۱۶، به کمک ارقام ۰ تا ۹ و تعدادی از حروف الفبای انگلیسی نشان داده میشوند.