# Copy set bits in a range

Here given code implementation process.

``````// C program
// Copy set bits in a range
#include <stdio.h>

// Copy all active bits (B to A) of from given range
void copy_bit(int a, int b, int r1, int r2)
{
if (r1 < 0 || r2 < 0 || r1 > 31 && r2 > 31)
{
// Invalid range
return;
}
printf("\n Given Number (a : %d,b : %d)", a, b);
// Set all active bits of a given range
int result = ((1 << (r2 - r1 + 1)) - 1) << ((r1 - 1));
// Get copy result
result = (result & b) | a;
// Display calculated result
printf("\n Result : %d", result);
}
int main(int argc, char
const *argv[])
{
int a = 37;
int b = 27;
int r1 = 3;
int r2 = 5;
// Test case a
// a = 37 (100101)
// b = 27 (011011)
//          ↓↓↓  (range r1 = 3, r2 = 5)
// result (111101) = 61
copy_bit(a, b, r1, r2);
// Test case b
a = 37;
b = 19;
r1 = 2;
r2 = 5;
// a = 37 (100101)
// b = 19 (010011)
//          ↓↓↓↓ (range r1 = 2, r2 = 5)
// result (110111) (55)
copy_bit(a, b, r1, r2);
return 0;
}``````

#### Output

`````` Given Number (a : 37,b : 27)
Result : 61
Given Number (a : 37,b : 19)
Result : 55``````
``````/*
Java program
Copy set bits in a range
*/
public class BitManipulation
{
// Copy all active bits (B to A) of from given range
public void copyBit(int a, int b, int r1, int r2)
{
if (r1 < 0 || r2 < 0 || r1 > 31 && r2 > 31)
{
// Invalid range
return;
}
System.out.print("\n Given Number (a : " + a + ",b : " + b + ")");
// Set all active bits of a given range
int result = ((1 << (r2 - r1 + 1)) - 1) << ((r1 - 1));
// Get copy result
result = (result & b) | a;
// Display calculated result
System.out.print("\n Result : " + result );
}

public static void main(String[] args)
{
int a = 37;
int b = 27;
int r1 = 3;
int r2 = 5;
// Test case a
// a = 37 (100101)
// b = 27 (011011)
//          ↓↓↓  (range r1 = 3, r2 = 5)
// result (111101) = 61
// Test case b
a = 37;
b = 19;
r1 = 2;
r2 = 5;
// a = 37 (100101)
// b = 19 (010011)
//          ↓↓↓↓ (range r1 = 2, r2 = 5)
// result (110111) (55)

}
}``````

#### Output

`````` Given Number (a : 37,b : 27)
Result : 61
Given Number (a : 37,b : 19)
Result : 55``````
``````// Include header file
#include <iostream>
using namespace std;

/*
C++ program
Copy set bits in a range
*/

class BitManipulation
{
public:
// Copy all active bits (B to A) of from given range
void copyBit(int a, int b, int r1, int r2)
{
// Invalid range
if (r1 < 0 || r2 < 0 || r1 > 31 && r2 > 31)
{
return;
}
cout << "\n Given Number (a : " << a << ",b : " << b << ")";
// Set all active bits of a given range
int result = ((1 << (r2 - r1 + 1)) - 1) << ((r1 - 1));
// Get copy result
result = (result &b) | a;
// Display calculated result
cout << "\n Result : " << result;
}
};
int main()
{
int a = 37;
int b = 27;
int r1 = 3;
int r2 = 5;
// Test case a
// a = 37 (100101)
// b = 27 (011011)
//          ↓↓↓  (range r1 = 3, r2 = 5)
// result (111101) = 61
// Test case b
a = 37;
b = 19;
r1 = 2;
r2 = 5;
// a = 37 (100101)
// b = 19 (010011)
//          ↓↓↓↓ (range r1 = 2, r2 = 5)
// result (110111) (55)
return 0;
}``````

#### Output

`````` Given Number (a : 37,b : 27)
Result : 61
Given Number (a : 37,b : 19)
Result : 55``````
``````// Include namespace system
using System;
/*
C# program
Copy set bits in a range
*/
public class BitManipulation
{
// Copy all active bits (B to A) of from given range
public void copyBit(int a, int b, int r1, int r2)
{
// Invalid range
if (r1 < 0 || r2 < 0 || r1 > 31 && r2 > 31)
{
return;
}
Console.Write("\n Given Number (a : " + a + ",b : " + b + ")");
// Set all active bits of a given range
int result = ((1 << (r2 - r1 + 1)) - 1) << ((r1 - 1));
// Get copy result
result = (result & b) | a;
// Display calculated result
Console.Write("\n Result : " + result);
}
public static void Main(String[] args)
{
int a = 37;
int b = 27;
int r1 = 3;
int r2 = 5;
// Test case a
// a = 37 (100101)
// b = 27 (011011)
//          ↓↓↓  (range r1 = 3, r2 = 5)
// result (111101) = 61
// Test case b
a = 37;
b = 19;
r1 = 2;
r2 = 5;
// a = 37 (100101)
// b = 19 (010011)
//          ↓↓↓↓ (range r1 = 2, r2 = 5)
// result (110111) (55)
}
}``````

#### Output

`````` Given Number (a : 37,b : 27)
Result : 61
Given Number (a : 37,b : 19)
Result : 55``````
``````<?php
/*
Php program
Copy set bits in a range
*/
class BitManipulation
{
// Copy all active bits (B to A) of from given range
public	function copyBit(\$a, \$b, \$r1, \$r2)
{
// Invalid range
if (\$r1 < 0 || \$r2 < 0 || \$r1 > 31 && \$r2 > 31)
{
return;
}
echo "\n Given Number (a : ". \$a .",b : ". \$b .")";
// Set all active bits of a given range
\$result = ((1 << (\$r2 - \$r1 + 1)) - 1) << ((\$r1 - 1));
// Get copy result
\$result = (\$result & \$b) | \$a;
// Display calculated result
echo "\n Result : ". \$result;
}
}

function main()
{
\$a = 37;
\$b = 27;
\$r1 = 3;
\$r2 = 5;
// Test case a
// a = 37 (100101)
// b = 27 (011011)
//          ↓↓↓  (range r1 = 3, r2 = 5)
// result (111101) = 61
// Test case b
\$a = 37;
\$b = 19;
\$r1 = 2;
\$r2 = 5;
// a = 37 (100101)
// b = 19 (010011)
//          ↓↓↓↓ (range r1 = 2, r2 = 5)
// result (110111) (55)
}
main();``````

#### Output

`````` Given Number (a : 37,b : 27)
Result : 61
Given Number (a : 37,b : 19)
Result : 55``````
``````/*
Node Js program
Copy set bits in a range
*/
class BitManipulation
{
// Copy all active bits (B to A) of from given range
copyBit(a, b, r1, r2)
{
// Invalid range
if (r1 < 0 || r2 < 0 || r1 > 31 && r2 > 31)
{
return;
}
process.stdout.write("\n Given Number (a : " + a + ", b : " + b + ")");
// Set all active bits of a given range
var result = ((1 << (r2 - r1 + 1)) - 1) << ((r1 - 1));
// Get copy result
result = (result & b) | a;
// Display calculated result
process.stdout.write("\n Result : " + result);
}
}

function main()
{
var a = 37;
var b = 27;
var r1 = 3;
var r2 = 5;
// Test case a
// a = 37 (100101)
// b = 27 (011011)
//          ↓↓↓  (range r1 = 3, r2 = 5)
// result (111101) = 61
// Test case b
a = 37;
b = 19;
r1 = 2;
r2 = 5;
// a = 37 (100101)
// b = 19 (010011)
//          ↓↓↓↓ (range r1 = 2, r2 = 5)
// result (110111) (55)
}
main();``````

#### Output

`````` Given Number (a : 37, b : 27)
Result : 61
Given Number (a : 37, b : 19)
Result : 55``````
``````#   Python 3 program
#   Copy set bits in a range

class BitManipulation :
#  Copy all active bits (B to A) of from given range
def copyBit(self, a, b, r1, r2) :
if (r1 < 0 or r2 < 0 or r1 > 31 and r2 > 31) :
#  Invalid range
return

print("\n Given Number (a : ", a ,",b : ", b ,")", end = "")
#  Set all active bits of a given range
result = ((1 << (r2 - r1 + 1)) - 1) << ((r1 - 1))
#  Get copy result
result = (result & b) | a
#  Display calculated result
print("\n Result : ", result, end = "")

def main() :
a = 37
b = 27
r1 = 3
r2 = 5
#  Test case a
#  a = 37 (100101)
#  b = 27 (011011)
#           ↓↓↓  (range r1 = 3, r2 = 5)
#  result (111101) = 61
#  Test case b
a = 37
b = 19
r1 = 2
r2 = 5
#  a = 37 (100101)
#  b = 19 (010011)
#           ↓↓↓↓ (range r1 = 2, r2 = 5)
#  result (110111) (55)

if __name__ == "__main__": main()``````

#### Output

`````` Given Number (a :  37 ,b :  27 )
Result :  61
Given Number (a :  37 ,b :  19 )
Result :  55``````
``````#   Ruby program
#   Copy set bits in a range

class BitManipulation
#  Copy all active bits (B to A) of from given range
def copyBit(a, b, r1, r2)
if (r1 < 0 || r2 < 0 || r1 > 31 && r2 > 31)
#  Invalid range
return
end

print("\n Given Number (a : ", a ,",b : ", b ,")")
#  Set all active bits of a given range
result = ((1 << (r2 - r1 + 1)) - 1) << ((r1 - 1))
#  Get copy result
result = (result & b) | a
#  Display calculated result
print("\n Result : ", result)
end

end

def main()
a = 37
b = 27
r1 = 3
r2 = 5
#  Test case a
#  a = 37 (100101)
#  b = 27 (011011)
#           ↓↓↓  (range r1 = 3, r2 = 5)
#  result (111101) = 61
#  Test case b
a = 37
b = 19
r1 = 2
r2 = 5
#  a = 37 (100101)
#  b = 19 (010011)
#           ↓↓↓↓ (range r1 = 2, r2 = 5)
#  result (110111) (55)
end

main()``````

#### Output

`````` Given Number (a : 37,b : 27)
Result : 61
Given Number (a : 37,b : 19)
Result : 55``````
``````/*
Scala program
Copy set bits in a range
*/
class BitManipulation
{
// Copy all active bits (B to A) of from given range
def copyBit(a: Int, b: Int, r1: Int, r2: Int): Unit = {
// Invalid range
if (r1 < 0 || r2 < 0 || r1 > 31 && r2 > 31)
{
return;
}
print("\n Given Number (a : " + a + ",b : " + b + ")");
// Set all active bits of a given range
var result: Int = ((1 << (r2 - r1 + 1)) - 1) << ((r1 - 1));
// Get copy result
result = (result & b) | a;
// Display calculated result
print("\n Result : " + result);
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: BitManipulation = new BitManipulation();
var a: Int = 37;
var b: Int = 27;
var r1: Int = 3;
var r2: Int = 5;
// Test case a
// a = 37 (100101)
// b = 27 (011011)
//          ↓↓↓  (range r1 = 3, r2 = 5)
// result (111101) = 61
// Test case b
a = 37;
b = 19;
r1 = 2;
r2 = 5;
// a = 37 (100101)
// b = 19 (010011)
//          ↓↓↓↓ (range r1 = 2, r2 = 5)
// result (110111) (55)
}
}``````

#### Output

`````` Given Number (a : 37,b : 27)
Result : 61
Given Number (a : 37,b : 19)
Result : 55``````
``````/*
Swift 4 program
Copy set bits in a range
*/
class BitManipulation
{
// Copy all active bits (B to A) of from given range
func copyBit(_ a: Int, _ b: Int, _ r1: Int, _ r2: Int)
{
// Invalid range
if (r1 < 0 || r2 < 0 || r1 > 31 && r2 > 31)
{
return;
}
print("\n Given Number (a : ", a ,",b : ", b ,")", terminator: "");
// Set all active bits of a given range
var result: Int = ((1 << (r2 - r1 + 1)) - 1) << ((r1 - 1));
// Get copy result
result = (result & b) | a;
// Display calculated result
print("\n Result : ", result, terminator: "");
}
}
func main()
{
var a: Int = 37;
var b: Int = 27;
var r1: Int = 3;
var r2: Int = 5;
// Test case a
// a = 37 (100101)
// b = 27 (011011)
//          ↓↓↓  (range r1 = 3, r2 = 5)
// result (111101) = 61
// Test case b
a = 37;
b = 19;
r1 = 2;
r2 = 5;
// a = 37 (100101)
// b = 19 (010011)
//          ↓↓↓↓ (range r1 = 2, r2 = 5)
// result (110111) (55)
}
main();``````

#### Output

`````` Given Number (a :  37 ,b :  27 )
Result :  61
Given Number (a :  37 ,b :  19 )
Result :  55``````
``````/*
Kotlin program
Copy set bits in a range
*/
class BitManipulation
{
// Copy all active bits (B to A) of from given range
fun copyBit(a: Int, b: Int, r1: Int, r2: Int): Unit
{
// Invalid range
if (r1 < 0 || r2 < 0 || r1 > 31 && r2 > 31)
{
return;
}
print("\n Given Number (a : " + a + ",b : " + b + ")");
// Set all active bits of a given range
var result: Int = ((1 shl(r2 - r1 + 1)) - 1) shl ((r1 - 1));
// Get copy result
result = (result and b) or a;
// Display calculated result
print("\n Result : " + result);
}
}
fun main(args: Array < String > ): Unit
{
var a: Int = 37;
var b: Int = 27;
var r1: Int = 3;
var r2: Int = 5;
// Test case a
// a = 37 (100101)
// b = 27 (011011)
//          ↓↓↓  (range r1 = 3, r2 = 5)
// result (111101) = 61
// Test case b
a = 37;
b = 19;
r1 = 2;
r2 = 5;
// a = 37 (100101)
// b = 19 (010011)
//          ↓↓↓↓ (range r1 = 2, r2 = 5)
// result (110111) (55)
}``````

#### Output

`````` Given Number (a : 37,b : 27)
Result : 61
Given Number (a : 37,b : 19)
Result : 55``````

## Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.