How Bitwise Operators are Used an Example Program

Well, one-by-one we’ve discussed each of the Bitwise
Operator
. Starting from Operation
on Bits and Bitwise Operators
, we moved on to Right/Left
Bit Shift Operators
then discussed Decimal
Number to Binary Conversion Program
. and at last Ones
Complement and XOR Operators
. After having so much theoretical it’s
time now for a nice Example Program, which is the topic of today’s post.
The code here is basically to show how these bitwise operator are used rather
than what they are used for.



// Example Program to demonstrate how
// Ones Complement (~) and XOR (^)
// Opeartors are used.
#include<stdio.h>

// prototype
void showbits(short int);

// defined
void showbits(short int dec_num)
{
short int loop, bit, and_mask;

for(loop=15; loop>=0; loop--)
{
and_mask=1<<loop;
bit=dec_num&and_mask;


if(bit==0) printf("0");
else printf("1");
}
}

void main()
{
// declare three short ints
// for storing user inputs
// and results
short int a,b,res;
int ch;

while(ch!=7)
{
// show main menu
printf(" Main Menu
"
);
printf(" ---------
"
);
printf("1. Perform Left Bit Shift Operation
"
);
printf("2. Perform Right Bit Shift Operation
"
);
printf("3. Perform AND Operation
"
);
printf("4. Perform OR Operation
"
);
printf("5. Perform Ones Complement Operation
"
);
printf("6. Perform XOR Operation
"
);
printf("7. Quit
"
);
scanf("%d",&ch);

switch(ch)
{
case 1:
// take input
printf("

Enter a decimal number: "
);
scanf("%d",&a);
printf("
Enter number of places to shift bit: "
);
scanf("%d",&b);


printf("

Entered Number: "
);
showbits(a);
printf(" (decimal %d)",a);

// perform left bit shift
// operation
res=a<<b;

// show the formatted output
printf("
Left Shifted : "
);
showbits(res);
printf(" (decimal %d)

"
,res);

break;

case 2:
// take input
printf("

Enter a decimal number: "
);
scanf("%d",&a);
printf("
Enter number of places to shift bit: "
);
scanf("%d",&b);


printf("

Entered Number: "
);
showbits(a);
printf(" (decimal %d)",a);

// perform right bit shift
// operation
res=a>>b;

// show the formatted output
printf("
Right Shifted : "
);
showbits(res);
printf(" (decimal %d)

"
,res);

break;

case 3:
printf("

Enter two decimal number: "
);
scanf("%d",&a);
scanf("%d",&b);

printf("

Entered Number 1: "
);
showbits(a);
printf(" (decimal %d)",a);
printf("
Entered Number 2: "
);
showbits(b);
printf(" (decimal %d)",b);

// perform AND operation on two
// variables a and b
res=a&b;

printf("
ANDed : "
);
showbits(res);
printf(" (decimal %d)

"
,res);

break;

case 4:
printf("

Enter two decimal number: "
);
scanf("%d",&a);
scanf("%d",&b);

printf("

Entered Number 1: "
);
showbits(a);
printf(" (decimal %d)",a);
printf("
Entered Number 2: "
);
showbits(b);
printf(" (decimal %d)",b);

// perform OR operation on two
// variables a and b
res=a|b;

printf("
ORed : "
);
showbits(res);
printf(" (decimal %d)

"
,res);

break;

case 5:
// take input
printf("

Enter a decimal number: "
);
scanf("%d",&a);

printf("

Entered Number: "
);
showbits(a);
printf(" (decimal %d)",a);

// perform ones complement
// operation
res=~a;

// show the formatted output
printf("
~ed : "
);
showbits(res);
printf(" (decimal %d)

"
,res);

break;

case 6:
printf("

Enter two decimal number: "
);
scanf("%d",&a);
scanf("%d",&b);

printf("

Entered Number 1: "
);
showbits(a);
printf(" (decimal %d)",a);
printf("
Entered Number 2: "
);
showbits(b);
printf(" (decimal %d)",b);

// perform XOR operation on two
// variables a and b
res=a^b;

printf("
XORed : "
);
showbits(res);
printf(" (decimal %d)

"
,res);

break;

}
}
}


Test Run:


   Main Menu
---------
1. Perform Left Bit Shift Operation
2. Perform Right Bit Shift Operation
3. Perform AND Operation
4. Perform OR Operation
5. Perform Ones Complement Operation
6. Perform XOR Operation
7. Quit
1


Enter a decimal number: 3476
Enter number of places to shift bit: 3


Entered Number: 0000110110010100 (decimal 3476)
Left Shifted : 0110110010100000 (decimal 27808)

   Main Menu
---------
1. Perform Left Bit Shift Operation
2. Perform Right Bit Shift Operation
3. Perform AND Operation
4. Perform OR Operation
5. Perform Ones Complement Operation
6. Perform XOR Operation
7. Quit
2


Enter a decimal number: 543
Enter number of places to shift bit: 5


Entered Number: 0000001000011111 (decimal 543)
Right Shifted : 0000000000010000 (decimal 16)

   Main Menu
---------
1. Perform Left Bit Shift Operation
2. Perform Right Bit Shift Operation
3. Perform AND Operation
4. Perform OR Operation
5. Perform Ones Complement Operation
6. Perform XOR Operation
7. Quit
7
Press any key to continue...

Related Articles:


Related Posts by Categories

0 comments:

Post a Comment

Blog Archive

Powered by Blogger.