# How to set bits in all numbers from 1 to n in C++

In this tutorial, I will be showing to set bits of all numbers from 1 to n. I will be using C++ to implement my approach.

Setting bits of a number basically means to change the bit to 1 from 0. The bit should be on for the specified index by the user. Let us take an example to make this idea clear:

Number:  129

Binary:     10000001

Set Bit:     7

Result:     193

I will be using a bitwise operator for carrying out this function. It can also be done without the use of a bitwise operator. However, changing every number into its binary would make the program very complex. Hence, I have used the operator to keep the concept easy to understand.

I have made two functions: setbit() and main() function in my code to carry out this operation,

The setbit()  function takes two parametrized inputs. One is the total numbers that need to be altered from 1 to n. The second parameter is the k(th) bit that needs to be set in each number. I have used a for loop to go through all numbers from 1 to n. I set the bit, using the bitwise OR ( | ) operator. However, note here we need to set the k(th) bit so we need to go to that bit first. For this, I have used the left shift operator that shifts the 1 to the desired bit and then does the bitwise OR.

In the main() function, I take the two user inputs and pass them as parameters to my setbit() function.

I have shown my code below:

```#include<iostream>
using namespace std;

void setbit(int k, int t)
{
int i;
//Loop for numbers from 1 to n
for(i=1;i<=t;i++)
{
//using biwise OR
int x = (i) | 1 << (k-1);
cout << (i) << "  -->  " << x << " " << endl;
}
}

int main()
{
int n, bit;
cout << "Enter n" << endl;
cin >> n;
cout << "Enter bit to be set in numbers from 1 to n" << endl;
cin >> bit;
setbit(bit, n);
return 0;
}```

Input:

I take user input as n = 5 and k = 3. So for numbers from 1 to 5, the 3rd bit will be set.

Output:

```Enter n
5
Enter bit to be set in numbers from 1 to n
3
1 --> 5
2 --> 6
3 --> 7
4 --> 4
5 --> 5```