Alterna todos os bits pares de um número
Dado um número, a tarefa é alternar todos os bits pares de um número.
Exemplos:
Input : 10 Output : 0 binary representation 1 0 1 0 after toggle 0 0 0 0 Input : 20 Output : 30 binary representation 1 0 1 0 0 after toggle 1 1 1 1 0
1. Primeiro gere um número que contenha bits de posição pares.
2. Pegue XOR com o número original. Observe que 1 ^ 1 = 0 e 1 ^ 0 = 1.
Vamos entender essa abordagem com o código a seguir.
// CPP code to Toggle all even
// bit of a number
#include <iostream>
using namespace std;
// Returns a number which has all even
// bits of n toggled.
int evenbittogglenumber(int n)
{
// Generate number form of 101010
// ..till of same order as n
int res = 0, count = 0;
for (int temp = n; temp > 0; temp >>= 1) {
// if bit is even then generate
// number and or with res
if (count % 2 == 1)
res |= (1 << count);
count++;
}
// return toggled number
return n ^ res;
}
// Driver code
int main()
{
int n = 11;
cout << evenbittogglenumber(n);
return 0;
}
// Java code to Toggle all
// even bit of a number
import java.io.*;
class GFG {
// Returns a number which has
// all even bits of n toggled.
static int evenbittogglenumber(int n)
{
// Generate number form of 101010
// ..till of same order as n
int res = 0, count = 0;
for (int temp = n; temp > 0;
temp >>= 1)
{
// if bit is even then generate
// number and or with res
if (count % 2 == 1)
res |= (1 << count);
count++;
}
// return toggled number
return n ^ res;
}
// Driver code
public static void main(String args[])
{
int n = 11;
System.out.println(evenbittogglenumber(n));
}
}
// This code is contributed by Nikita Tiwari.
# Python code to Toggle all
# even bit of a number
# Returns a number which has all even
# bits of n toggled.
def evenbittogglenumber(n) :
# Generate number form of 101010
# ..till of same order as n
res = 0
count = 0
temp = n
while (temp > 0) :
# if bit is even then generate
# number and or with res
if (count % 2 == 1) :
res = res | (1 << count)
count = count + 1
temp >>= 1
# return toggled number
return n ^ res
# Driver code
n = 11
print(evenbittogglenumber(n))
#This code is contributed by Nikita Tiwari.
// C# code to Toggle all
// even bit of a number
using System;
class GFG {
// Returns a number which has
// all even bits of n toggled.
static int evenbittogglenumber(int n)
{
// Generate number form of 101010
// ..till of same order as n
int res = 0, count = 0;
for (int temp = n; temp > 0;
temp >>= 1)
{
// if bit is even then generate
// number and or with res
if (count % 2 == 1)
res |= (1 << count);
count++;
}
// return toggled number
return n ^ res;
}
// Driver code
public static void Main()
{
int n = 11;
Console.WriteLine(evenbittogglenumber(n));
}
}
// This code is contributed by Anant Agarwal.
<?php
// php code to Toggle all
// even bit of a number
// Returns a number which has
// all even bits of n toggled.
function evenbittogglenumber($n)
{
// Generate number form of 101010
// ..till of same order as n
$res = 0;
$count = 0;
for ($temp = $n; $temp > 0; $temp >>= 1)
{
// if bit is even then generate
// number and or with res
if ($count % 2 == 1)
$res |= (1 << $count);
$count++;
}
// return toggled number
return $n ^ $res;
}
// Driver code
$n = 11;
echo evenbittogglenumber($n);
// This code is contributed by mits
?>
<script>
// JavaScript program to Toggle all
// even bit of a number
// Returns a number which has
// all even bits of n toggled.
function evenbittogglenumber(n)
{
// Generate number form of 101010
// ..till of same order as n
let res = 0, count = 0;
for (let temp = n; temp > 0;
temp >>= 1)
{
// if bit is even then generate
// number and or with res
if (count % 2 == 1)
res |= (1 << count);
count++;
}
// return toggled number
return n ^ res;
}
// Driver code
let n = 11;
document.write(evenbittogglenumber(n));
</script>
Saída:
1
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva