The & (bitwise AND) in C or C++ takes two numbers as operands and does AND on every bit of two numbers. The result of AND is 1 only if both bits are 1.
The | (bitwise OR) in C or C++ takes two numbers as operands and does OR on every bit of two numbers. The result of OR is 1 if any of the two bits is 1.
The ^ (bitwise XOR) in C or C++ takes two numbers as operands and does XOR on every bit of two numbers. The result of XOR is 1 if the two bits are different.
The << (left shift) in C or C++ takes two numbers, left shifts the bits of the first operand, the second operand decides the number of places to shift.
The >> (right shift) in C or C++ takes two numbers, right shifts the bits of the first operand, the second operand decides the number of places to shift.
The ~ (bitwise NOT) in C or C++ takes one number and inverts all bits of it
#include <iostream>
using namespace std;
int main() {
// a = 5(00000101), b = 9(00001001)
int a = 5, b = 9;
// The result is 00000001
cout<<"a = " << a <<","<< " b = " << b <<endl;
cout << "a & b = " << (a & b) << endl;
// The result is 00001101
cout << "a | b = " << (a | b) << endl;
// The result is 00001100
cout << "a ^ b = " << (a ^ b) << endl;
// The result is 11111010
cout << "~a = " << (~a) << endl;
// The result is 00010010
cout<<"b << 1" <<" = "<< (b << 1) <<endl;
// The result is 00000100
cout<<"b >> 1 "<<"= " << (b >> 1 )<<endl;
return 0;
}
// This code is contributed by sathiyamoorthics19
// C Program to demonstrate use of bitwise operators
#include <stdio.h>
int main()
{
// a = 5(00000101), b = 9(00001001)
unsigned char a = 5, b = 9;
// The result is 00000001
printf("a = %d, b = %d
", a, b);
printf("a&b = %d
", a & b);
// The result is 00001101
printf("a|b = %d
", a | b);
// The result is 00001100
printf("a^b = %d
", a ^ b);
// The result is 11111010
printf("~a = %d
", a = ~a);
// The result is 00010010
printf("b<<1 = %d
", b << 1);
// The result is 00000100
printf("b>>1 = %d
", b >> 1);
return 0;
}
#include <iostream>
using namespace std;
int main() {
// Bitwise and & , bitwise or | , bitwise XOR ^
// (10)10=(1010)2 ,(15)10=(1111)2
int x = 10 & 15; // 1010
int y = 10 | 15; // 1111
int z = 10 ^ 15; // 0101
cout << x <<endl;
cout << y <<endl;
cout << z <<endl;
/* and & , or | , XOR ^
00 0 00 0 00 0
01 0 01 1 01 1
10 0 10 1 10 1
11 1 11 1 11 0 */
}
Bitwise operators
Code Example |
---|
C :: c read file content |
C :: char to int in c |
C :: sqlserver insert with set identity |
C :: strings in c |
C :: fwrite in c |
C :: c round float |
C :: Write a 64-bit program in assembly that prints Hello, world in .asm |
C :: how to compareTo in java |
C :: check if pid exists c |
C :: how to malloc for matrix in c |
C :: c exit |
C :: print to console in c |
C :: mongo connect db |
C :: passing file as argument in c |
C :: fseek function in c |
C :: pyinstaller hidden import tensorflow not found |
C :: c to fahrenheit |
C :: create arrya of chars malloc |
C :: c check if character is a digit or alphabet |
C :: round c |
C :: Increment & Decrement Operator in C language |
C :: C How to define a union? |
C :: C Syntax of return statement |
C :: c get int inpot |
C :: C Operator associativity |
C :: instller acrobat ous ubuntu |
C :: worst fit program in c |
C :: curl ftp upload file to directory |
C :: UTC offset upper limit |
C :: get flag status c code |