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:
Ones
Complement and XOR Operators
-
Decimal
Number to Binary Conversion Program
-
Right/Left
Bit Shift Operators
-
Operation
on Bits and Bitwise Operators
-
0 comments:
Post a Comment