الگوریتم تبدیل عدد دسیمال به باینری را می‌‌توان به روش‌های مختلفی طراحی کرد. یکی از رایج‌ترین روش‌های این کار، تقسیم تکراری عدد مورد نظر به ۲ است. در هر تقسیم، باقیمانده را ذخیره می‌کنیم. این کار را تا زمانی ادامه می‌دهیم که خارج قسمت برابر با صفر شود. اکنون فقط باید باقیمانده‌ها را از آخر به اول بنویسیم. جواب، مقدار باینری معادل عدد دسیمال است. دستگاه اعداد، روش نشان دادن اعداد با استفاده از ارقام یا نماد‌ها است. دستگاه‌ اعداد مختلفی از قبیل «دودویی» (Binary)، «اُکتال» (Octal)، «ده‌دهی» (Decimal) و «هگزادسیمال» (Hexadecimal) وجود دارند. هر دستگاه از تعداد مشخصی رقم استفاده می‌کند. با پیروی از قوانین خاصی می‌توانیم به سادگی اعداد را از دستگاهی به دستگاه دیگر تبدیل کنیم.

فهرست مطالب این نوشته
997696

در این مطلب از مجله فرادرس به بررسی الگوریتم تبدیل عدد دسیمال به باینری پرداخته‌ایم. یعنی روش تبدیل اعداد از مبنای ده به مبنای دو را به صورت الگوریتم نوشته و سپس با کمک زبان‌های برنامه نویسی مختلف آن‌ را پیاده‌سازی کرده‌ایم.

الگوریتم تبدیل عدد دسیمال به باینری چیست؟

الگوریتم تبدیل عدد دسیمال به باینری به مجموعه‌ای از دستور‌العمل‌های قابل پیاده‌سازی گفته می‌شود که هر عدد دسیمالی را به مقدار باینری معادل آن عدد تبدیل می‌کنند. این دستورالعمل‌ها باید پایان‌پذیر باشند. برای تبدیل عدد دسیمال به باینری در این مطلب از الگوریتم تقسیم پیاپی بر عدد ۲ استفاده کرده‌ایم. در صورت نیاز به آموزش طراحی الگوریتم می‌توانید از فیلم آموزش طراحی الگوریتم همراه با حل مثال های عملی در فرادرس استفاده کنید. لینک مربوط به این فیلم را در پایین نیز قرار داده‌ایم.

مراحل انجام کار الگوریتم را در فهرست پایین نوشته‌ایم.

  1. ابتدا عدد صحیح مورد نظر را بر عدد ۲ تقسیم می‌کنیم. مقدار باقی‌مانده و خارج‌ قسمت را به شکل جداگانه‌ای نوشته و ذخیره می‌کنیم.
  2. این بار، مقدار خارج قسمت را بر ۲ تقسیم می‌کنیم. باز هم باید خارج قسمت بدست آمده و باقیمانده را به صورت جداگانه یادداشت کنیم.
  3. مانند مرحله قبل خارج قسمت را تقسیم بر ۲ می‌کنیم. این فرایند را آن قدر تکرار می‌کنیم تا خارج قسمت برابر با صفر شود.
  4. بعد از اینکه خارج قسمت برابر با صفر شد، تمام باقیمانده‌های ذخیره شده را از آخر به اول، در کنار هم می‌نویسیم. اکنون معادل باینری عدد مورد نظر خود را بدست‌ آورده‌ایم.
الگوریتم تبدیل عدد دسیمال به باینری
فلوچارت الگوریتم تبدیل عدد دسیمال به باینری. در نمودار بالا «n» عدد ورودی است.

برای مثال، تصویر زیر، تبدیل عدد دسیمال ۱۷ را به معادل آن در دستگاه باینری نشان می‌دهد.

عدد ۱۷ در مبنای ۱۰ با چند تقسیم پیاپی به عدد ۱۰۰۰۱ در مبنای ۲ تبدیل شده است.
عدد ۱۷ در مبنای ۱۰ با چند تقسیم پیاپی به عدد ۱۰۰۰۱ در مبنای ۲ تبدیل شده است.

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

چگونه با کمک فرادرس، نوشتن الگوریتم را یاد بگیریم؟

فرادرس، به‌عنوان بزرگ‌ترین تولیدکننده محتوای آموزشی فارسی، دو روش برای آموزش الگوریتم‌نویسی دارد.

  • منابع متنی در مجله آنلاین فرادرس
  • فیلم‌های آموزشی مختلف

فیلم‌های آموزشی فرادس با بهترین اساتید و کیفیت بالا تهیه شده‌اند. به همین دلیل، افراد زیادی برای آموزش الگوریتم، ساختمان داده، برنامه نویسی و غیره از فیلم‌های فرادرس استفاده می‌کنند. با اینکه یادگیری الگوریتم‌ها خیلی مهم است. اما تعداد کمی از برنامه نویسان سراغ تکنیک‌های طراحی الگوریتم می‌روند. درحالی‌که الگوریتم‌ها در بیشتر پلتفرم‌ها و برنامه‌های مهم نقش حیاتی دارند.

مجموعه آموزش طراحی الگوریتم – درس، تمرین، حل مثال و تست
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه آموزش طراحی الگوریتم هدایت شوید.

وب‌سایت فرادرس، فیلم‌های آموزشی باکیفیتی درباره الگوریتم‌ها و روش‌های پیاده‌سازی آن‌ها منتشر کرده است. فیلم‌های حوزه علوم کامپیوتر در فرادرس برای دو گروه برنامه نویسان و دانشجویان ساخته شده‌اند. یعنی اینکه هم افراد فعال و شاغل در حوزه توسعه نرم‌افزار می‌توانند مهارت و دانش خود را افزایش دهند و هم دانشجویان می‌توانند برای آزمون‌هایی مانند کنکور ارشد و دکتری آماده شوند.

در پایین چهار مورد از فیلم‌های آموزش نحوه نوشتن الگوریتم برنامه نویسی در فرادرس را معرفی کرده‌ایم. با کلیک بر روی تصویر بالا به صفحه اصلی این مجموعه آموزشی هدایت شده و از سایر فیلم‌ها نیز دیدن کنید.

مثالی از تبدیل عدد دسیمال به باینری

در این بخش دو مثال مختلف را برای تبدیل عدد دسیمال به باینری، بررسی کرده‌‌ایم.

ابتدا عدد فرد ۱۵ و سپس عدد زوج ۱۰ را به باینری تبدیل کرده‌ایم.

تبدیل عدد صحیح ۱۵ به معادل باینری آن

در فهرست زیر عدد ۱۵ را به مبنای دو تبدیل کرده‌ایم. برای این کار باید به صورت پیاپی عدد ۱۵ را بر دو تقسیم کنیم. در هر مرحله هم مقدار باقی‌مانده را ذخیره می‌کنیم.

  • 15/2=715/2=7
  • 7/2=37/2=3
  • 3/2=13/2=1
  • 1/2=01/2=0

اکنون تمام باقی‌مانده‌ها را به ترتیب برعکس می‌نویسیم. در این مثال باقیمانده‌ها همگی برابر با ۱ هستند. در نتیجه بعد از قرار دادن این ارقام در کنار هم مشخص می‌شود که مقدار باینری عدد «۱۵» برابر با «۱۱۱۱» است.

1510=1111215_{10}=1111_{2}

تبدیل عدد صحیح و زوج ۱۰ به معادل باینری آن

اکنون عدد صحیح و زوج ۱۰ را به باینری تبدیل می‌کنیم.

  • 10/2=510/2=5
  • 5/2=25/2=2
  • 2/2=12/2=1
  • 1/2=01/2=0

بنابر محاسبات بالا، عدد «۱۰» در مبنای دو به شکل «۱۰۱۰» نمایش داده می‌شود.

1010=1010210_{10}=1010_{2}

برنامه نویسی الگوریتم تبدیل عدد دسیمال به باینری

در این بخش از مطلب، الگوریتم تبدیل عدد دسیمال به باینری را با زبان‌های جاوا، پایتون، جاوا اسکریپت، #C و ++C و C پیاده‌سازی کرده‌ایم.

تبدیل عدد دسیمال به باینری با زبان ++C

در کادر زیر، الگوریتم تبدیل عدد دسیمال به باینری را با زبان برنامه نویسی ++C نوشته‌ایم.

در کادر بالا، بعد از نوشتن تابع، عدد 12 را به عنوان ورودی به آن داده‌ایم. حاصل اجرای کار الگوریتم برابر با 1100 است.

تبدیل عدد دسیمال به باینری با زبان برنامه نویسی C

در این بخش، الگوریتم تبدیل عدد دسیمال به باینری را با زبان برنامه نویسی C پیاده‌سازی کرده‌ایم. زبان برنامه نویسی C یکی از زبان‌های قدیمی و بسیار مهم در دنیای برنامه نویسی است. بسیاری از سایر زبان‌ها از روی زبان C ساخته شده‌اند. برای آشنایی با این زبان، می‌توانید از مطلب مربوط به آن در مجله فرادرس استفاده کنید.

بعد از نوشتن برنامه، عدد دلخواه 10 را به عنوان ورودی به آن داده‌ایم. برنامه در خروجی مقدار 1010 را برمی‌گرداند.

تبدیل عدد دسیمال به باینری با جاوا

در کادر زیر، الگوریتم تبدیل عدد دسیمال به باینری را با زبان برنامه نویسی جاوا پیاده‌سازی کرده‌ایم.


در کادر بالا، بعد از نوشتن تابع، عدد 24 را به عنوان ورودی به آن داده‌ایم. نتیجه اجرای برنامه برابر با 11000 است.

تبدیل عدد دسیمال به باینری با پایتون

در کادر زیر، الگوریتم تبدیل عدد دسیمال به باینری را با زبان برنامه نویسی پایتون پیاده‌سازی کردیم.

در کادر بالا، بعد از نوشتن تابع، عدد 20 را به عنوان ورودی به آن داده‌ایم. حاصل اجرای الگوریتم برابر با 10100   شده است.

تبدیل دسیمال به باینری با #C

در کدهای زیر، الگوریتم تبدیل عدد دسیمال به باینری را با زبان برنامه نویسی #C پیاده‌سازی کرده‌ایم.

در کادر بالا، بعد از نوشتن تابع، عدد 12 را به عنوان ورودی به آن داده‌ایم. حاصل اجرای کار الگوریتم برابر با 10010 است.

تبدیل دسیمال به باینری با جاوا اسکریپت

در کادر پایین، الگوریتم تبدیل عدد دسیمال به باینری را با زبان برنامه نویسی جاوا اسکریپت پیاده‌سازی کرده‌ایم.

در انتهای کدهای بالا، بعد از نوشتن تابع، عدد 12 را به عنوان ورودی به آن ارسال کرده‌ایم. حاصل اجرای کار الگوریتم برابر با 1100 شده است.

استفاده از فرادرس برای یادگیری برنامه نویسی

برنامه نویسی یکی از جذاب‌ترین و پرتقاضا‌ترین شغل‌ها در سال‌های پیش رو است. هرچه مهارت برنامه نویسان بیشتر شود، با مسائل پیچیده‌تر و جذاب‌تری هم روبه‌رو می‌شوند. به همین دلیل، همه برنامه نویسان، مبتدی‌ و حرفه‌ای‌ همیشه باید به دنبال یادگیری بیشتر باشند. روش‌های زیادی برای یادگیری برنامه نویسی وجود دارند. کلاس‌های حضوری بیشتر برای سطوح مقدماتی و متوسط هستند. همچنین، کلاس‌های حرفه‌ای هزینه و زمان زیادی هم نیاز دارند. کاربران می‌توانند فیلم‌های آموزشی فرادرس را چندین بار ببینند و مرور کنند. در ادامه، چند آموزش حرفه‌ای را درباره زبان‌های برنامه نویسی مختلف، معرفی کرده‌ایم.

در صورت نیاز به آموزش‌های دیگر با کلیک بر روی تصویر زیر، وارد صفحه اصلی مجموعه آموزش شوید و گزینه مورد نظر خود را بیابید.

مجموعه آموزش برنامه نویسی – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه آموزش فیلم‌های برنامه نویسی هدایت شوید.

فرمول ریاضی تبدیل دسیمال به باینری

هر عددی در دستگاه اعداد را می‌توان به همراه اندیس پایه آن نوشت. این اندیس نشان‌دهنده مبنای دستگاه اعداد مورد استفاده است. برای مثال اندیس ۲ به اعداد باینری اشاره می‌کند و اندیس ۱۰ به اعداد ده‌دهی. اندیس ۱۶ هم به اعداد هگزادسیمال اشاره می‌کند.

بنابراین هر عدد صحیح را می‌توان با استفاده از فرمول زیر نمایش داد.

A=xn×bn+xn1×bn1+...+x1×b1+x0×b0A = x_{n}times b^{n}+x_{n-1}times b^{n-1}+…+x_{1}times b^{1}+x_{0}times b^{0}

پارامترهای استفاده شده در فرمول بالا به شرح زیر هستند.

  • A: نشان دهنده عدد صحیح است.
  • x: مقدار رقم است.
  • b: مقدار اندیس است.

برای مثال عدد صحیح ۶۹۴ در مبنای ۱۰ و مبنای ۲ به شکل زیر نمایش داده می‌شود.

69410=10101101102694_{10} = 1010110110_{2}

با استفاده از فرمول بالا می‌توانیم ۶۹۴ را در هر دو مبنا به شکل زیر بنویسیم.

69410=6×102+9×101+4×100694_{10} = 6times10^{2}+9times10^{1}+4times10^{0}

10101101102=1×29+0×28+1×27+0×26+1×25+1×24+0×23+1×22+1×21+0×201010110110_{2} = 1times2^{9}+0times2^{8}+1times2^{7}+0times2^{6}+1times2^{5}+1times2^{4}+0times2^{3}+1times2^{2}+1times2^{1}+0times2^{0}

جمع‌بندی

در این مطلب از مجله فرادرس با «الگوریتم تبدیل عدد دسیمال به باینری» آشنا شدیم. دسیمال و باینری دو مورد از پُراستفاده‌ترین دستگاه‌های عددی هستند. دستگاه عددی ده‌دهی همان سیستمی شمارشی است که در زندگی روزمره خود استفاده می‌کنیم. اعداد این دستگاه در مبنای ده هستند. به این معنا که از ۱۰ رقم متفاوت – ۰ تا ۹ – برای نشان دادن اعداد استفاده می‌کنند. اما استفاده اصلی از سیستم باینری در کامپیوترها و برنامه نویسی سطح ماشین است. این سیستم در مبنای دو بوده و از ارقام ۰ و ۱ برای نشان دادن اعداد استفاده می‌کند. رایج‌ترین روش تبدیل اعداد دسیمال به باینری، استفاده از تقسیم‌های تکراری است.

اما خود عملیات تبدیل کردن، کاربرد بسیار زیادی دارد. تقریبا تمام کامپیوترها و دستگاه‌های دیجیتال از سیستم باینری استفاده می‌کنند. زیرا سیستم باینری به سادگی با مدارهای الکتریکی و گیت‌های منطقی کار می‌کند. به ارقام باینری در کامپیوتر بیت گفته می‌شود. کامپیوتر‌ها برای گرفتن عدد از انسان، انجام محاسبات و بر گرداندن نتیجه باید دائما اعداد دسیمال را به باینری و اعداد باینری را به دسیمال تبدیل کنند.

source

توسط expressjs.ir