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

۵۱۴۵ بازدید
آخرین به‌روزرسانی: ۰۷ تیر ۱۴۰۲
زمان مطالعه: ۵ دقیقه
برنامه تبدیل عدد از مبنای ۱۰ به ۲ — به زبان ساده

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

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

برای هر عددی، می‌توان بررسی کرد که iاُمین بیت آن صفر (خاموش) یا یک (روشن) است. این کار، با AND بیتی $$2^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
نظر شما چیست؟

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