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

۸۶۱۲
۱۴۰۴/۰۱/۲۷
۵ دقیقه
PDF
برنامه تبدیل عدد از مبنای ۱۰ به ۲ – به زبان سادهبرنامه تبدیل عدد از مبنای ۱۰ به ۲ – به زبان ساده
آموزش متنی جامع
امکان دانلود نسخه PDF

در این مطلب، روش نوشتن برنامه تبدیل عدد از مبنای ۱۰ به ۲ تشریح می‌شود. در واقع، هدف نوشتن برنامه‌ای است که یک عدد (در مبنای ۱۰) را از ورودی دریافت کرده و سپس، آن را به مبنای ۲ ببرد. برای انجام این کار، روش‌های گوناگونی وجود دارد. در ادامه، روش‌های تبدیل عدد از مبنای ۱۰ به مبنای ۲ (دستگاه اعداد دودویی) مورد بررسی قرار خواهند گرفت. همچنین، کد پیاده‌سازی این روش‌ها در زبان‌های برنامه‌نویسی گوناگون شامل ++C ،C، «جاوا» (Java)، «پایتون» (Python) و «سی‌شارپ» (#C) ارائه شده است.

997696

برنامه تبدیل عدد از مبنای ۱۰ به ۲ با روش تکرار شونده

برای هر عددی، می‌توان بررسی کرد که iاُمین بیت آن صفر (خاموش) یا یک (روشن) است. این کار، با AND بیتی 2i2^i (دو به توان i) انجام می‌شود.

  1. عدد «NUM» از ورودی دریافت می‌شود. هدف بررسی این است که بیت صفرم آن، روشن (۱) یا خاموش (۰) است.
    • bit = 2 ^ 0 (هدف بررسی بیت صفرم است، بنابراین i = 0)
    • اگر NUM & bit == 1 باشد، بدین معنا است که 0اُمین بیت روشن و در غیر این صورت، 0اُمین بیت خاموش است.
  2. به طور مشابه، اگر هدف بررسی این است که آیا ۵اُمین بیت روشن یا خاموش است، اعمال زیر باید انجام شود.
    • bit = 2 ^ 5 (هدف بررسی بیت پنجم است، بنابراین i=5)
    • اگر NUM & bit == 1 باشد، بدین معنا است که 5اُمین بیت روشن (۱) و در غیر این صورت،‌ به معنای خاموش بودن (۰) بیت مذکور است.

«عدد صحیح بدون علامت» (Unsigned Integer) سی و دو بیتی (۳۲ بیتی) که حاوی ۳۱-۰ بیت است، از ورودی دریافت می‌شود. برای چاپ کردن ارائه دودویی عدد صحیح بدون علامت، کار از از ۳۱اُمین بیت آغاز و بررسی می‌شود که بیت مذکور خاموش یا روشن است. اگر این بیت روشن باشد، «۱» و در غیر این صورت، صفر (۰) چاپ می‌شود. اکنون، بررسی می‌شود که بیت ۳۰اُم روشن یا خاموش است. اگر این بیت روشن باشد مقدار ۱ و در غیر این صورت، ۰ در خروجی چاپ می‌شود. این کار برای همه بیت‌ها از ۳۱ تا ۰ باید انجام  شود. در نهایت، ارائه دودویی عدد در خروجی دریافت خواهد شد.

1void bin(unsigned n) 
2{ 
3    unsigned i; 
4    for (i = 1 << 31; i > 0; i = i / 2) 
5        (n & i)? printf("1"): printf("0"); 
6} 
7  
8int main(void) 
9{ 
10    bin(7); 
11    printf("\n"); 
12    bin(4); 
13}

برنامه تبدیل عدد از مبنای ۱۰ به ۲ با روش بازگشتی

در ادامه، الگوریتم بازگشتی (Recursive Method) تبدیل عدد NUM از مبنای ۱۰ به مبنای ۲ (دستگاه دودویی) ارائه شده است.

  1. اگر NUM > 1
    • NUM را در پشته قرار بده
    • به صورت بازگشتی، تابع با NUM / 2 را فراخوانی کن.
  2. و
    • NUM را از پشته حذف (POP) کن، آن را بر دو تقسیم و باقی‌مانده تقسیم را چاپ کن.

برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به مبنای ۲ در ++C

1// C++ Program for the binary  
2// representation of a given number 
3#include<bits/stdc++.h> 
4using namespace std; 
5  
6void bin(unsigned n) 
7{ 
8    /* step 1 */
9    if (n > 1) 
10        bin(n/2); 
11  
12    /* step 2 */
13    cout << n % 2; 
14} 
15  
16int main(void) 
17{ 
18    bin(7); 
19    cout << endl; 
20    bin(4); 
21} 
22  
23// This code is contributed  
24// by Akanksha Rai
مشاهده کامل کدها

برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به مبنای ۲ در C

1// C Program for the binary  
2// representation of a given number 
3void bin(unsigned n) 
4{ 
5    /* step 1 */
6    if (n > 1) 
7        bin(n/2); 
8  
9    /* step 2 */
10    printf("%d", n % 2); 
11} 
12  
13int main(void) 
14{ 
15    bin(7); 
16    printf("\n"); 
17    bin(4); 
18}
مشاهده کامل کدها

برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به مبنای ۲ در جاوا

1// Java Program for the binary  
2// representation of a given number 
3class GFG  
4{ 
5static void bin(int n) 
6{ 
7    /* step 1 */
8    if (n > 1) 
9        bin(n/2); 
10  
11    /* step 2 */
12    System.out.print(n % 2); 
13} 
14  
15//Driver code 
16public static void main(String[] args)  
17{ 
18    bin(7); 
19    System.out.println(); 
20    bin(4);      
21} 
22} 
23  
24// This code is contributed  
25// by ChitraNayal
مشاهده کامل کدها

برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به مبنای ۲ در پایتون ۳

1# Python3 Program for the binary  
2# representation of a given number 
3def bin(n) : 
4    if n > 1 : 
5        bin(n // 2) 
6          
7    print(n % 2,end = "") 
8      
9if __name__ == "__main__" : 
10  
11    bin(7) 
12    print() 
13    bin(4) 
14     
15# This code is contributed by ANKITRAI1
مشاهده کامل کدها

برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به مبنای ۲ در #C

1// C# Program for the binary  
2// representation of a given number 
3using System; 
4  
5class GFG { 
6      
7static void bin(int n)  
8{ 
9      
10    // step 1 
11    if (n > 1)  
12        bin(n / 2);  
13  
14    // step 2 
15    Console.Write(n % 2);  
16}  
17  
18// Driver code  
19static public void Main () 
20{ 
21    bin(7);  
22    Console.WriteLine();  
23    bin(4);  
24}  
25}  
26  
27// This code is contributed ajit
مشاهده کامل کدها

برنامه بازگشتی تبدیل عدد از مبنای ۱۰ به مبنای ۲ در PHP

1<?php 
2// PHP Program for the binary  
3// representation of a given number 
4function bin($n) 
5{ 
6    /* step 1 */
7    if ($n > 1) 
8        bin($n/2); 
9  
10    /* step 2 */
11    echo ($n % 2); 
12} 
13  
14// Driver code 
15bin(7); 
16echo ("\n"); 
17bin(4); 
18  
19// This code is contributed  
20// by Shivi_Aggarwal 
21?>
مشاهده کامل کدها

خروجی

در زیر، خروجی قطعه کدهای بالا برای اعداد ۷ (۱۱۱) و ۴ (۱۰۰) ارائه شده است.

111
100

تبدیل عدد از مبنای ۱۰ به ۲ با روش بازگشتی و عملگر بیتی

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

  1. n > 0 را بررسی کن.
  2. عدد را یک بیت به سمت راست شیفت بده و تابع بازگشتی را فراخوانی کن.
  3. بیت‌های عدد را چاپ کن.

برنامه تبدیل عدد از مبنای ۱۰ به مبنای ۲ در ++C

1// C++ implementation of the approach 
2#include<bits/stdc++.h> 
3using namespace std; 
4  
5// Function to convert decimal 
6// to binary number 
7void bin(unsigned n) 
8{ 
9    if (n > 1) 
10    bin(n>>1); 
11      
12    printf("%d", n & 1); 
13} 
14  
15// Driver code 
16int main(void) 
17{ 
18    bin(131); 
19    printf("\n"); 
20    bin(3); 
21    return 0; 
22}
مشاهده کامل کدها

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

1// Java implementation of the approach 
2  
3class GFG { 
4  
5// Function to convert decimal  
6// to binary number  
7static void bin(Integer n)  
8{  
9    if (n > 1)  
10    bin(n>>1);  
11      
12    System.out.printf("%d", n & 1);  
13}  
14  
15// Driver code  
16  public static void main(String[] args) { 
17        bin(131);  
18    System.out.printf("\n");  
19    bin(3); 
20    } 
21} 
22/*This code is contributed by PrinciRaj1992*/
مشاهده کامل کدها

برنامه تبدیل عدد از مبنای ۱۰ به مبنای ۲ در پایتون ۳

1# Python 3 implementation of above approach 
2  
3# Function to convert decimal to  
4# binary number  
5def bin(n): 
6      
7    if (n > 1):  
8        bin(n >> 1) 
9    print(n & 1, end = "") 
10  
11# Driver code  
12bin(131) 
13print() 
14bin(3) 
15      
16# This code is contributed by PrinciRaj1992
مشاهده کامل کدها

برنامه تبدیل عدد از مبنای ۱۰ به مبنای ۲ در #C

1// C# implementation of above approach 
2using System;  
3  
4public class GFG {  
5  
6// Function to convert decimal  
7// to binary number  
8static void bin(int n)  
9{  
10    if (n > 1)  
11    bin(n>>1);  
12       
13    Console.Write(n & 1);  
14}  
15   
16// Driver code  
17  public static void Main() { 
18        bin(131);  
19    Console.WriteLine();  
20    bin(3); 
21    } 
22} 
23/*This code is contributed by PrinciRaj1992*/
مشاهده کامل کدها

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

1<?php 
2// PHP implementation of the approach 
3  
4// Function to convert decimal 
5// to binary number 
6function bin($n) 
7{ 
8    if ($n > 1) 
9    bin($n>>1); 
10      
11    echo ($n & 1); 
12} 
13  
14// Driver code 
15bin(131); 
16echo "\n"; 
17bin(3); 
18  
19// This code is contributed 
20// by Akanksha Rai
مشاهده کامل کدها

خروجی

خروجی قطعه کدهای بالا، برای اعداد ۱۳۱ (10000011) و ۳ (11)، در ادامه ارائه شده است.

10000011
11

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر پرسشی درباره این مطلب دارید، آن را با ما مطرح کنید.
منابع:
GeeksforGeeks
PDF
مطالب مرتبط
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *