CHAR_BIT : It is the number of bits in char. These days, almost all architectures use 8 bits per byte (But it is not the case always, some older machines used to have 7-bit byte). It can be found in Let us see an application of it. Suppose we wish to print byte by byte representation of an integer.
Examples :
Input : 4 Output : 00000000 00000000 00000000 00000100 Input : 12 Output : 00000000 00000000 00000000 00001100
// CPP program to print byte by byte presentation
#include <bits/stdc++.h>
using namespace std;
// function in which number and initially 0 is passed
void printInBinary(int num)
{
int n = CHAR_BIT*sizeof(num);
stack<bool> s;
for (int i=1; i<=n; i++)
{
s.push(num%2);
num = num/2;
}
for (int i=1; i<=n; i++)
{
cout << s.top();
s.pop();
// Put a space after every byte.
if (i % CHAR_BIT == 0)
cout << " ";
}
}
int main()
{
int num = 12;
printInBinary(num);
return 0;
}
Output :
00000000 00000000 00000000 00001100
Time Complexity : O(32)
Auxiliary Space : O(32)