Рубрики

Двоичное представление заданного числа

Напишите программу для печати двоичного представления заданного числа.

Источник: Microsoft Интервью Set-3

Способ 1: итеративный
Для любого числа мы можем проверить, является ли его «i-й бит» 0 (ВЫКЛ) или 1 (ВКЛ), поразрядно И поменяв его с «2 ^ i» (2 повышают до i).

1) Let us take number 'NUM' and we want to check whether it's 0th bit is ON or OFF    
    bit = 2 ^ 0 (0th bit)
    if  NUM & bit == 1 means 0th bit is ON else 0th bit is OFF

2) Similarly if we want to check whether 5th bit is ON or OFF    
    bit = 2 ^ 5 (5th bit)
    if NUM & bit == 1 means its 5th bit is ON else 5th bit is OFF.

Давайте возьмем целое число без знака (32 бита), которое состоит из 0-31 бита. Чтобы напечатать двоичное представление целого числа без знака, начните с 31-го бита, проверьте, включен ли 31-й бит или выключен, если он включен, выведите «1», иначе выведите «0». Теперь проверьте, включен ли 30-й бит или выключен, если он включен, выведите «1», иначе выведите «0», сделайте это для всех битов от 31 до 0, и, наконец, мы получим двоичное представление числа.

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);

}

Метод 2: рекурсивный
Ниже приведен рекурсивный метод для вывода двоичного представления 'NUM'.

step 1) if NUM > 1
    a) push NUM on stack
    b) recursively call function with 'NUM / 2'
step 2)
    a) pop NUM from stack, divide it by 2 and print it's remainder.

C ++

// C ++ Программа для бинарника
// представление заданного числа
#include<bits/stdc++.h>

using namespace std;

  

void bin(unsigned n)

{

    /* шаг 1 */

    if (n > 1)

        bin(n/2);

  

    /* шаг 2 */

    cout << n % 2;

}

  

int main(void)

{

    bin(7);

    cout << endl;

    bin(4);

}

  
// Этот код добавлен
// Аканкша Рай

С

// C Программа для двоичного файла
// представление заданного числа

void bin(unsigned n)

{

    /* шаг 1 */

    if (n > 1)

        bin(n/2);

  

    /* шаг 2 */

    printf("%d", n % 2);

}

  

int main(void)

{

    bin(7);

    printf("\n");

    bin(4);

}

Джава

// Java-программа для двоичного файла
// представление заданного числа

class GFG 

{

static void bin(int n)

{

    /* шаг 1 */

    if (n > 1)

        bin(n/2);

  

    /* шаг 2 */

    System.out.print(n % 2);

}

  
// Код драйвера

public static void main(String[] args) 

{

    bin(7);

    System.out.println();

    bin(4);     

}
}

  
// Этот код добавлен
// ChitraNayal

Python 3

# Python3 Программа для бинарника
# представление заданного числа

def bin(n) :

    if n > 1 :

        bin(n // 2)

          

    print(n % 2,end = "")

      

if __name__ == "__main__" :

  

    bin(7)

    print()

    bin(4)

     
# Этот код предоставлен ANKITRAI1

C #

// C # Программа для двоичного файла
// представление заданного числа

using System;

  

class GFG {

      

static void bin(int n) 

{

      

    // шаг 1

    if (n > 1) 

        bin(n / 2); 

  

    // шаг 2

    Console.Write(n % 2); 

  
// Код драйвера

static public void Main ()

{

    bin(7); 

    Console.WriteLine(); 

    bin(4); 


  
// Этот код предоставлен ajit

PHP

<?php
// PHP программа для бинарника
// представление заданного числа

function bin($n)

{

    /* шаг 1 */

    if ($n > 1)

        bin($n/2);

  

    /* шаг 2 */

    echo ($n % 2);

}

  
// Код драйвера
bin(7);

echo ("\n");

bin(4);

  
// Этот код добавлен
// от Shivi_Aggarwal
?>

Выход:

111
100

Способ 3: рекурсивный с использованием побитового оператора
Шаги для преобразования десятичного числа в его двоичное представление приведены ниже:

step 1: Check n > 0
step 2: Right shift the number by 1 bit and recursive function call
step 3: Print the bits of number

C ++

// C ++ реализация подхода
#include<bits/stdc++.h>

using namespace std;

  
// Функция для преобразования десятичной
// в двоичное число

void bin(unsigned n)

{

    if (n > 1)

    bin(n>>1);

      

    printf("%d", n & 1);

}

  
// Код драйвера

int main(void)

{

    bin(131);

    printf("\n");

    bin(3);

    return 0;

}

Джава

// Java реализация подхода

  

class GFG {

  
// Функция для преобразования десятичной
// в двоичное число

static void bin(Integer n) 

    if (n > 1

    bin(n>>1); 

      

    System.out.printf("%d", n & 1); 

  
// Код драйвера

  public static void main(String[] args) {

        bin(131); 

    System.out.printf("\n"); 

    bin(3);

    }

}
/ * Этот код предоставлен PrinciRaj1992 * /

python3

# Python 3 реализация вышеуказанного подхода

  
# Функция для преобразования десятичного числа в
# двоичное число

def bin(n):

      

    if (n > 1): 

        bin(n >> 1)

    print(n & 1, end = "")

  
# Код драйвера

bin(131)

print()

bin(3)

      
# Этот код предоставлен PrinciRaj1992

C #

// C # реализация вышеуказанного подхода

using System; 

  

public class GFG { 

  
// Функция для преобразования десятичной
// в двоичное число

static void bin(int n) 

    if (n > 1) 

    bin(n>>1); 

       

    Console.Write(n & 1); 

   
// Код драйвера

  public static void Main() {

        bin(131); 

    Console.WriteLine(); 

    bin(3);

    }

}
/ * Этот код предоставлен PrinciRaj1992 * /

PHP

<?php
// PHP реализация подхода

  
// Функция для преобразования десятичной
// в двоичное число

function bin($n)

{

    if ($n > 1)

    bin($n>>1);

      

    echo ($n & 1);

}

  
// Код драйвера
bin(131);

echo "\n";

bin(3);

  
// Этот код добавлен
// Аканкша Рай


Выход:

10000011
11

Эта статья составлена Нарендрой Кангралкар . Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Двоичное представление заданного числа

0.00 (0%) 0 votes