برنامه تبدیل عدد از مبنای ۱۰ به ۲ – به زبان ساده


در این مطلب، روش نوشتن برنامه تبدیل عدد از مبنای ۱۰ به ۲ تشریح میشود. در واقع، هدف نوشتن برنامهای است که یک عدد (در مبنای ۱۰) را از ورودی دریافت کرده و سپس، آن را به مبنای ۲ ببرد. برای انجام این کار، روشهای گوناگونی وجود دارد. در ادامه، روشهای تبدیل عدد از مبنای ۱۰ به مبنای ۲ (دستگاه اعداد دودویی) مورد بررسی قرار خواهند گرفت. همچنین، کد پیادهسازی این روشها در زبانهای برنامهنویسی گوناگون شامل ++C ،C، «جاوا» (Java)، «پایتون» (Python) و «سیشارپ» (#C) ارائه شده است.
برنامه تبدیل عدد از مبنای ۱۰ به ۲ با روش تکرار شونده
برای هر عددی، میتوان بررسی کرد که iاُمین بیت آن صفر (خاموش) یا یک (روشن) است. این کار، با AND بیتی (دو به توان i) انجام میشود.
- عدد «NUM» از ورودی دریافت میشود. هدف بررسی این است که بیت صفرم آن، روشن (۱) یا خاموش (۰) است.
- bit = 2 ^ 0 (هدف بررسی بیت صفرم است، بنابراین i = 0)
- اگر NUM & bit == 1 باشد، بدین معنا است که 0اُمین بیت روشن و در غیر این صورت، 0اُمین بیت خاموش است.
- به طور مشابه، اگر هدف بررسی این است که آیا ۵اُمین بیت روشن یا خاموش است، اعمال زیر باید انجام شود.
- bit = 2 ^ 5 (هدف بررسی بیت پنجم است، بنابراین i=5)
- اگر NUM & bit == 1 باشد، بدین معنا است که 5اُمین بیت روشن (۱) و در غیر این صورت، به معنای خاموش بودن (۰) بیت مذکور است.
«عدد صحیح بدون علامت» (Unsigned Integer) سی و دو بیتی (۳۲ بیتی) که حاوی ۳۱-۰ بیت است، از ورودی دریافت میشود. برای چاپ کردن ارائه دودویی عدد صحیح بدون علامت، کار از از ۳۱اُمین بیت آغاز و بررسی میشود که بیت مذکور خاموش یا روشن است. اگر این بیت روشن باشد، «۱» و در غیر این صورت، صفر (۰) چاپ میشود. اکنون، بررسی میشود که بیت ۳۰اُم روشن یا خاموش است. اگر این بیت روشن باشد مقدار ۱ و در غیر این صورت، ۰ در خروجی چاپ میشود. این کار برای همه بیتها از ۳۱ تا ۰ باید انجام شود. در نهایت، ارائه دودویی عدد در خروجی دریافت خواهد شد.
برنامه تبدیل عدد از مبنای ۱۰ به ۲ با روش بازگشتی
در ادامه، الگوریتم بازگشتی (Recursive Method) تبدیل عدد NUM از مبنای ۱۰ به مبنای ۲ (دستگاه دودویی) ارائه شده است.
- اگر NUM > 1
- NUM را در پشته قرار بده
- به صورت بازگشتی، تابع با NUM / 2 را فراخوانی کن.
- و
- NUM را از پشته حذف (POP) کن، آن را بر دو تقسیم و باقیمانده تقسیم را چاپ کن.
برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به مبنای ۲ در ++C
برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به مبنای ۲ در C
برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به مبنای ۲ در جاوا
برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به مبنای ۲ در پایتون ۳
برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به مبنای ۲ در #C
برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به مبنای ۲ در PHP
خروجی
در زیر، خروجی قطعه کدهای بالا برای اعداد ۷ (۱۱۱) و ۴ (۱۰۰) ارائه شده است.
111 100
تبدیل عدد از مبنای ۱۰ به ۲ با روش بازگشتی و عملگر بیتی
مراحل لازم برای تبدیل یک عدد اعشاری به عدد دودویی، در ادامه بیان شده است.
- n > 0 را بررسی کن.
- عدد را یک بیت به سمت راست شیفت بده و تابع بازگشتی را فراخوانی کن.
- بیتهای عدد را چاپ کن.
برنامه تبدیل عدد از مبنای ۱۰ به مبنای ۲ در ++C
برنامه تبدیل عدد از مبنای ۱۰ به مبنای ۲ در جاوا
برنامه تبدیل عدد از مبنای ۱۰ به مبنای ۲ در پایتون ۳
برنامه تبدیل عدد از مبنای ۱۰ به مبنای ۲ در #C
برنامه تبدیل عدد از مبنای ۱۰ به مبنای ۲ در PHP
خروجی
خروجی قطعه کدهای بالا، برای اعداد ۱۳۱ (10000011) و ۳ (11)، در ادامه ارائه شده است.
10000011 11
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- آموزش برنامهنویسی C++
- مجموعه آموزشهای ریاضیات
- یافتن دور همیلتونی با الگوریتم پس گرد — به زبان ساده
- الگوریتم بازی مار و پله همراه با کد — به زبان ساده
- حل مساله n وزیر با الگوریتم پسگرد (Backtracking) — به زبان ساده
^^