Q:

Bitwise Operators - Find output programs in C with explanation (Set 2)

0

If you are here first time, I would recommend to read Bitwise Operators - Find output programs (set -1) first.

This is a second set of find output programs on C language Bitwise Operators; each question has correct output and explanation about the answer.

Program - 1

#include <stdio.h>
int main()
{
	unsigned char a=0xFA;
	
	a= (a>>4) | (a<<4);
	
	printf("a = %02X\n",a);
				
	return 0;
}

Program - 2

#include <stdio.h>
int main()
{
	unsigned char a=0xFA;
	char loop;
	
	for(loop=7; loop>=0; loop--)
		printf("%d ",(a & (1<<loop))?1:0);
	
	printf("\n");
	
	return 0;
}

Program - 3

#include <stdio.h>
int main()
{
	unsigned char a=0xAA;
	unsigned char b=0x55;
	
	printf("(a^b): %02X\n",(a^b));
		
	return 0;
}

Program - 4

#include <stdio.h>
int main()
{
	unsigned char a=0xAA;
	
	a= (a^0x55);
	a= (a^0x55);
	
	printf("a= %02X\n",a);
	return 0;
}

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Answer Program 1:

Output

a= AF

Explanation

The expression a= (a>>4) | (a<<4); will swap the nibbles, here a>>4 will shift the last 4 bits (from 7 to 4) to the first 4 position (3 to 0) and statement a<<4 will shift the first 4 bits from (0 to 3), to the last 4 position (from 4 to 7). And the Bitwise OR ('|') operator will add both of the nibbles, thus the output will be AF (swapped nibbles).

Answer Program 2:

Output

1 1 1 1 1 0 1 0

Explanation

This program is to get BINARY value of any 8 bits integer number, expression (a & (1<<loop))?1:0 will check whether particular bit is set (high) or not, if it is set (high), '1' will print else '0' will print.

Answer Program 3:

Output

FF

Explanation

Bitwise XOR (^) returns 1, if one operand's bit is 1 and other operand's bit is 0, consider the given truth table:

a	b	a^b
0	0	0
0	1	1
1	0	1
1	1	0

Expression (a^b)
a:	0xAA		1010 1010
b:	0x55		0101 0101
(a^b)	0xFF		1111 1111

Thus, the output will be "FF".

Answer Program 4:

Output

a= AA

Explanation

When, some value is XORed with a number twice, same (initial value) returns.
Consider the expression evaluation, first (a= a^0x55)
a: 0xAA - 1010 1010
0x55 - 0101 0101
(a^0x55) - 1111 1111 = 0xFF

Now, second expression (a= a^0x55)
a: 0xFF - 1111 1111
0x55 - 0101 0101
(a^0x55) - 1010 1010 = 0x55
Thus, the output will be "AA".

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now