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

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

در این مطلب، روش نوشتن برنامه تبدیل عدد از مبنای ۱۰ به ۲ تشریح می‌شود. در واقع، هدف نوشتن برنامه‌ای است که یک عدد (در مبنای ۱۰) را از ورودی دریافت کرده و سپس، آن را به مبنای ۲ ببرد. برای انجام این کار، روش‌های گوناگونی وجود دارد. در ادامه، روش‌های تبدیل عدد از مبنای ۱۰ به مبنای ۲ (دستگاه اعداد دودویی) مورد بررسی قرار خواهند گرفت. همچنین، کد پیاده‌سازی این روش‌ها در زبان‌های برنامه‌نویسی گوناگون شامل ++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) سی و دو بیتی (۳۲ بیتی) که حاوی ۳۱-۰ بیت است، از ورودی دریافت می‌شود. برای چاپ کردن ارائه دودویی عدد صحیح بدون علامت، کار از از ۳۱اُمین بیت آغاز و بررسی می‌شود که بیت مذکور خاموش یا روشن است. اگر این بیت روشن باشد، «۱» و در غیر این صورت، صفر (۰) چاپ می‌شود. اکنون، بررسی می‌شود که بیت ۳۰اُم روشن یا خاموش است. اگر این بیت روشن باشد مقدار ۱ و در غیر این صورت، ۰ در خروجی چاپ می‌شود. این کار برای همه بیت‌ها از ۳۱ تا ۰ باید انجام  شود. در نهایت، ارائه دودویی عدد در خروجی دریافت خواهد شد.

void bin(unsigned n) 
{ 
    unsigned i; 
    for (i = 1 << 31; i > 0; i = i / 2) 
        (n & i)? printf("1"): printf("0"); 
} 
  
int main(void) 
{ 
    bin(7); 
    printf("\n"); 
    bin(4); 
}

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

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

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

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

// C++ Program for the binary  
// representation of a given number 
#include<bits/stdc++.h> 
using namespace std; 
  
void bin(unsigned n) 
{ 
    /* step 1 */
    if (n > 1) 
        bin(n/2); 
  
    /* step 2 */
    cout << n % 2; 
} 
  
int main(void) 
{ 
    bin(7); 
    cout << endl; 
    bin(4); 
} 
  
// This code is contributed  
// by Akanksha Rai

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

// C Program for the binary  
// representation of a given number 
void bin(unsigned n) 
{ 
    /* step 1 */
    if (n > 1) 
        bin(n/2); 
  
    /* step 2 */
    printf("%d", n % 2); 
} 
  
int main(void) 
{ 
    bin(7); 
    printf("\n"); 
    bin(4); 
}

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

// Java Program for the binary  
// representation of a given number 
class GFG  
{ 
static void bin(int n) 
{ 
    /* step 1 */
    if (n > 1) 
        bin(n/2); 
  
    /* step 2 */
    System.out.print(n % 2); 
} 
  
//Driver code 
public static void main(String[] args)  
{ 
    bin(7); 
    System.out.println(); 
    bin(4);      
} 
} 
  
// This code is contributed  
// by ChitraNayal

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

# Python3 Program for the binary  
# representation of a given number 
def bin(n) : 
    if n > 1 : 
        bin(n // 2) 
          
    print(n % 2,end = "") 
      
if __name__ == "__main__" : 
  
    bin(7) 
    print() 
    bin(4) 
     
# This code is contributed by ANKITRAI1

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

// C# Program for the binary  
// representation of a given number 
using System; 
  
class GFG { 
      
static void bin(int n)  
{ 
      
    // step 1 
    if (n > 1)  
        bin(n / 2);  
  
    // step 2 
    Console.Write(n % 2);  
}  
  
// Driver code  
static public void Main () 
{ 
    bin(7);  
    Console.WriteLine();  
    bin(4);  
}  
}  
  
// This code is contributed ajit

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

<?php 
// PHP Program for the binary  
// representation of a given number 
function bin($n) 
{ 
    /* step 1 */
    if ($n > 1) 
        bin($n/2); 
  
    /* step 2 */
    echo ($n % 2); 
} 
  
// Driver code 
bin(7); 
echo ("\n"); 
bin(4); 
  
// This code is contributed  
// by Shivi_Aggarwal 
?>

خروجی

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

111
100

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

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

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

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

// C++ implementation of the approach 
#include<bits/stdc++.h> 
using namespace std; 
  
// Function to convert decimal 
// to binary number 
void bin(unsigned n) 
{ 
    if (n > 1) 
    bin(n>>1); 
      
    printf("%d", n & 1); 
} 
  
// Driver code 
int main(void) 
{ 
    bin(131); 
    printf("\n"); 
    bin(3); 
    return 0; 
}

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

// Java implementation of the approach 
  
class GFG { 
  
// Function to convert decimal  
// to binary number  
static void bin(Integer n)  
{  
    if (n > 1)  
    bin(n>>1);  
      
    System.out.printf("%d", n & 1);  
}  
  
// Driver code  
  public static void main(String[] args) { 
        bin(131);  
    System.out.printf("\n");  
    bin(3); 
    } 
} 
/*This code is contributed by PrinciRaj1992*/

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

# Python 3 implementation of above approach 
  
# Function to convert decimal to  
# binary number  
def bin(n): 
      
    if (n > 1):  
        bin(n >> 1) 
    print(n & 1, end = "") 
  
# Driver code  
bin(131) 
print() 
bin(3) 
      
# This code is contributed by PrinciRaj1992

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

// C# implementation of above approach 
using System;  
  
public class GFG {  
  
// Function to convert decimal  
// to binary number  
static void bin(int n)  
{  
    if (n > 1)  
    bin(n>>1);  
       
    Console.Write(n & 1);  
}  
   
// Driver code  
  public static void Main() { 
        bin(131);  
    Console.WriteLine();  
    bin(3); 
    } 
} 
/*This code is contributed by PrinciRaj1992*/

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

<?php 
// PHP implementation of the approach 
  
// Function to convert decimal 
// to binary number 
function bin($n) 
{ 
    if ($n > 1) 
    bin($n>>1); 
      
    echo ($n & 1); 
} 
  
// Driver code 
bin(131); 
echo "\n"; 
bin(3); 
  
// This code is contributed 
// by Akanksha Rai

خروجی

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

10000011
11

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

^^

بر اساس رای ۲۲ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
GeeksforGeeks

نظر شما چیست؟

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