Cuente el número de bits que se voltearán para convertir A en B

Dados dos números ‘a’ y b’. Escriba un programa para contar el número de bits necesarios para convertir ‘a’ en ‘b’. 
Ejemplo : 
 

Input : a = 10, b = 20
Output : 4
Binary representation of a is 00001010
Binary representation of b is 00010100
We need to flip highlighted four bits in a
to make it b.

Input : a = 7, b = 10
Output : 3
Binary representation of a is 00000111
Binary representation of b is 00001010
We need to flip highlighted three bits in a
to make it b.

C++

// Count number of bits to be flipped
// to convert A into B
#include <iostream>
using namespace std;
  
// Function that count set bits
int countSetBits(int n)
{
    int count = 0;
    while (n > 0) {
        count++;
        n &= (n - 1);
    }
    return count;
}
  
// Function that return count of
// flipped number
int FlippedCount(int a, int b)
{
    // Return count of set bits in
    // a XOR b
    return countSetBits(a ^ b);
}
  
// Driver code
int main()
{
    int a = 10;
    int b = 20;
    cout << FlippedCount(a, b) << endl;
    return 0;
}
  
// This code is contributed by Sania Kumari Gupta (kriSania804)

C

// Count number of bits to be flipped to convert A into B
#include <stdio.h>
  
// Function that count set bits
int countSetBits(int n)
{
    int count = 0;
    while (n > 0) {
        count++;
        n &= (n - 1);
    }
    return count;
}
  
// Function that return count of flipped number
int FlippedCount(int a, int b)
{
    // Return count of set bits in a XOR b
    return countSetBits(a ^ b);
}
  
// Driver code
int main()
{
    int a = 10;
    int b = 20;
    printf("%d\n", FlippedCount(a, b));
    return 0;
}
  
// This code is contributed by Sania Kumari Gupta (kriSania804)

Java

// Count number of bits to be flipped
// to convert A into B
import java.util.*;
  
class Count {
      
    // Function that count set bits
    public static int countSetBits(int n)
    {
        int count = 0;
        while (n != 0) {
            count++;
            n &=(n-1);
        }
        return count;
    }
  
    // Function that return count of
    // flipped number
    public static int FlippedCount(int a, int b)
    {
        // Return count of set bits in
        // a XOR b
        return countSetBits(a ^ b);
    }
      
    // Driver code
    public static void main(String[] args)
    {
        int a = 10;
        int b = 20;
        System.out.print(FlippedCount(a, b));
    }
}
  
// This code is contributed by rishabh_jain

Python3

# Count number of bits to be flipped
# to convert A into B
  
# Function that count set bits
def countSetBits( n ):
    count = 0
    while n:
        count += 1
        n &= (n-1)
    return count
      
# Function that return count of
# flipped number
def FlippedCount(a , b):
  
    # Return count of set bits in
    # a XOR b
    return countSetBits(a^b)
  
# Driver code
a = 10
b = 20
print(FlippedCount(a, b))
  
# This code is contributed by "Sharad_Bhardwaj".

C#

// Count number of bits to be
// flipped to convert A into B
using System;
  
class Count {
      
    // Function that count set bits
    public static int countSetBits(int n)
    {
        int count = 0;
        while (n != 0) {
            count++;
            n &= (n-1);
        }
        return count;
    }
  
    // Function that return
    // count of flipped number
    public static int FlippedCount(int a, int b)
    {
    // Return count of set 
    // bits in a XOR b
        return countSetBits(a ^ b);
    }
      
    // Driver code
    public static void Main()
    {
        int a = 10;
        int b = 20;
        Console.WriteLine(FlippedCount(a, b));
    }
}
  
// This code is contributed by vt_m.

PHP

<?php
// Count number of bits to be 
// flipped to convert A into B
  
// Function that count set bits
function countSetBits($n)
{
    $count = 0;
    while($n)
    {
        $count += 1;
        $n &= (n-1);
    }
    return $count;
}
      
// Function that return 
// count of flipped number
function FlippedCount($a, $b)
{
    // Return count of set 
    // bits in a XOR b
    return countSetBits($a ^ $b);
}
  
// Driver code
$a = 10;
$b = 20;
echo FlippedCount($a, $b);
  
// This code is contributed by mits
?>

Javascript

<script>
// Count number of bits to be flipped
// to convert A into Bclass Count {
  
    // Function that count set bits
    function countSetBits(n) {
        var count = 0;
        while (n != 0) {
            count++;
            n &= (n - 1);
        }
        return count;
    }
  
    // Function that return count of
    // flipped number
    function FlippedCount(a , b) {
        // Return count of set bits in
        // a XOR b
        return countSetBits(a ^ b);
    }
  
    // Driver code
        var a = 10;
        var b = 20;
        document.write(FlippedCount(a, b));
  
// This code is contributed by shikhasingrajput
</script>

C++

// C++ program
#include <iostream>
using namespace std;
  
int countFlips(int a, int b)
{
  
  // initially flips is equal to 0
  int flips = 0;
  
  // & each bits of a && b with 1
  // and store them if t1 and t2
  // if t1 != t2 then we will flip that bit
  
  while(a > 0 || b > 0){
  
    int t1 = (a&1);
    int t2 = (b&1);
  
    if(t1!=t2){
      flips++;
    }
    // right shifting a and b
    a>>=1;
    b>>=1;
  }
  
  return flips;
}
  
int main () {
  int a = 10;
  int b = 20;
  cout <<countFlips(a, b);
}
  
// this code is contributed by shivanisinghss2110

Java

/*package whatever //do not write package name here */
  
// CONTRIBUTED BY PRAVEEN VISHWAKARMA
  
import java.io.*;
  
class GFG {
        
      public static int countFlips(int a, int b){
          // initially flips is equal to 0
        int flips = 0;
        
          // & each bits of a && b with 1
          // and store them if t1 and t2
        // if t1 != t2 then we will flip that bit
          
          while(a>0 || b>0){
            
            int t1 = (a&1);
              int t2 = (b&1);
                
              if(t1!=t2){
                flips++;
            }
              // right shifting a and b
              a>>>=1;
              b>>>=1;
        }
        
      return flips;
    }
        
    public static void main (String[] args) {
        int a = 10;
          int b = 20;
          System.out.println(countFlips(a, b));
    }
    
}

Python3

def countFlips(a, b):
      
    # initially flips is equal to 0
    flips = 0
      
    # & each bits of a && b with 1
    # and store them if t1 and t2
    # if t1 != t2 then we will flip that bit
    while(a > 0 or b > 0):
        t1 = (a & 1)
        t2 = (b & 1)
        if(t1 != t2):
            flips += 1
              
        # right shifting a and b
        a>>=1
        b>>=1
      
    return flips
      
a = 10
b = 20
print(countFlips(a, b))
  
# This code is contributed by shivanisinghss2110

C#

/*package whatever //do not write package name here */
using System;
  
class GFG {
        
      public static int countFlips(int a, int b)
      {
          
          // initially flips is equal to 0
        int flips = 0;
        
          // & each bits of a && b with 1
          // and store them if t1 and t2
        // if t1 != t2 then we will flip that bit        
          while(a > 0 || b > 0){
            
            int t1 = (a&1);
              int t2 = (b&1);
                
              if(t1 != t2){
                flips++;
            }
              // right shifting a and b
              a>>=1;
              b>>=1;
        }
        
      return flips;
    }
      
  // Driver code
    public static void Main (String[] args) {
        int a = 10;
          int b = 20;
          Console.Write(countFlips(a, b));
    }
    
}
  
// This code is contributed by shivanisinghss2110

Javascript

<script>
/*package whatever //do not write package name here */
  
function countFlips(a, b){
          // initially flips is equal to 0
        var flips = 0;
        
          // & each bits of a && b with 1
          // and store them if t1 and t2
        // if t1 != t2 then we will flip that bit
          
          while(a>0 || b>0){
            
            var t1 = (a&1);
              var t2 = (b&1);
                
              if(t1!=t2){
                flips++;
            }
              // right shifting a and b
              a>>>=1;
              b>>>=1;
        }
        
      return flips;
    }
        
          var a = 10;
          var b = 20;
          document.write(countFlips(a, b));
  
// This code is contributed by shivanisinghss2110
</script>

C++

// C++ program to Count number of bits to be flipped
// to convert A into B
#include <iostream>
using namespace std;
  
// Driver code
int main()
{
    int a = 10;
    int b = 20;
    cout <<__builtin_popcount(a^b) << endl;
    return 0;
}
  
// This code is contributed by Suruchi Kumari

C

//C program to Count number of bits to be flipped
// to convert A into B
#include <stdio.h>
  
// Driver code
int main()
{
    int a = 10;
    int b = 20;
    printf("%d\n",__builtin_popcount(a^b));
    return 0;
}
  
// This code is contributed by Suruchi Kumari

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *