Рубрики

XOR считает 0 и 1 в двоичном представлении

По заданному числу задача состоит в том, чтобы найти XOR числа 0 и числа 1 в двоичном представлении данного числа.
Примеры:

Input  : 5
Output : 3
Binary representation : 101
Count of 0s = 1, 
Count of 1s = 2
1 XOR 2 = 3.

Input  : 7
Output : 3
Binary representation : 111
Count of 0s = 0
Count of 1s = 3
0 XOR 3 = 3.

Идея проста: мы проходим все биты числа, считаем 0 и 1 и, наконец, возвращаем XOR двух отсчетов.

C ++

// C ++ программа для поиска XOR отсчетов 0 и 1 в
// двоичное представление n.
#include<iostream>

using namespace std;

  
// Возвращает XOR отсчетов 0 и 1 в
// двоичное представление n.

int countXOR(int n)

{

    int count0 = 0, count1 = 0;

    while (n)

    {

        // подсчет нулей и единиц

        (n % 2 == 0) ? count0++ :count1++;

        n /= 2;

    }

    return (count0 ^ count1);

}

  
// Программа для водителя

int main()

{

    int n = 31;

    cout << countXOR (n);

    return 0;

}

Джава

// Java программа для поиска XOR отсчетов 0 с
// и 1s в двоичном представлении n.

  

class GFG {

      

    // Возвращает XOR отсчетов 0 и 1

    // в двоичном представлении n.

    static int countXOR(int n)

    {

        int count0 = 0, count1 = 0;

        while (n != 0)

        {

            // подсчет нулей и единиц

            if(n % 2 == 0

            count0++ ;

            else

            count1++;

            n /= 2;

        }

        return (count0 ^ count1);

    }

      

    // Программа для водителя

    public static void main(String[] args)

    {

        int n = 31;

        System.out.println(countXOR (n));

    }

}

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

python3

# Python3 программа для поиска XOR отсчетов 0 с
# и 1 в двоичном представлении n.

  
# Возвращает XOR отсчетов 0 и 1
# в двоичном представлении n.

def countXOR(n):

      

    count0, count1 = 0, 0

    while (n != 0):

      

        # подсчет нулей и единиц

        if(n % 2 == 0): 

            count0 += 1

        else:

            count1 += 1

        n //= 2

          

    return (count0 ^ count1)

      
Код водителя

n = 31

print(countXOR(n))

  
# Этот код предоставлен Anant Agarwal.

C #

// C # программа для поиска XOR отсчетов 0 с
// и 1s в двоичном представлении n.

using System;

  

class GFG {

       

    // Возвращает XOR отсчетов 0 и 1

    // в двоичном представлении n.

    static int countXOR(int n)

    {

        int count0 = 0, count1 = 0;

        while (n != 0)

        {

              

            // вычисление количества нулей

            // и те

            if(n % 2 == 0) 

                count0++ ;

            else

                count1++;

                  

            n /= 2;

        }

          

        return (count0 ^ count1);

    }

       

    // Программа для водителя

    public static void Main()

    {

          

        int n = 31;

          

        Console.WriteLine(countXOR (n));

    }

}

  
// Этот код предоставлен Anant Agarwal.

PHP

<?PHP
// PHP программа для поиска XOR
// считает 0 и 1 в двоичном
// представление n.

  
// Возвращает XOR отсчетов 0 и 1
// в двоичном представлении n.

function countXOR($n)

{

    $count0 = 0;

    $count1 = 0;

    while ($n)

    {

        // подсчет количества

        // нули и единицы

        ($n % 2 == 0) ? $count0++ :$count1++;

        $n = intval($n / 2);

    }

    return ($count0 ^ $count1);

}

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

$n = 31;

echo countXOR ($n);

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


Выход:

5

Одно наблюдение состоит в том, что для числа вида 2 ^ x — 1 выход всегда равен x. Мы можем напрямую получить ответ для этого случая, сначала проверив, что n + 1 является степенью двойки или нет .

Эта статья предоставлена Шивам Прадхан (anuj_charm) . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

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

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

XOR считает 0 и 1 в двоичном представлении

0.00 (0%) 0 votes