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