Home » C programming language

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



This section contains find output programs on C language Bitwise Operators; each question has correct output and explanation about the answer.

Predict the output of following programs.

Program - 1

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

Output

b= 0A

Explanation

In the statement (a&0x0F) bit masking is applying on the a, it will return first 4 bits (from 0 to 3) of the a, thus the output will be 0A [in Binary 0000 1010].


Program - 2

#include <stdio.h>
int main()
{
	unsigned char a=0xAA;
	
	if(a & 0x01)
		printf("one - true\n");
	else
		printf("one - false\n");
		
	if(a & 0x02)
		printf("two - true\n");
	else
		printf("two - false\n");
				
	return 0;
}

Output

one - false
two - true

Explanation

Bitwise AND '&' returns true if specified bit is set (high), here binary value of a will be (1010 1010), thus, statement (a & 0x01) will return false, because first bit of the a is low (0) and the statement (a & 0x02) will return true because second bit of the a is set (1).


Program - 3

#include <stdio.h>
int main()
{
	unsigned char a=0xAA;
	
	printf("a= %02X\n",a);
	
	if(a | 0x01)
		printf("true\n");
	else
		printf("false\n");
	
				
	return 0;
}

Output

a= AA
true

Explanation

Bitwise OR '|' operator returns true, if any bit (from both operands, on specific position) is set (1)/high. In the statement (a | 0x01) [ in Binary: 1010 1010 & 0000 0001] first bit of second operand is true, thus, this statement will return 1 and condition will be true.


Program - 4

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

Output

a= 0F


Explanation

Here, bitwise OR operator will add the particular bit by 1.
a= a|0x01; [Here, bit [0] will be 1 (because it was 0).
a= a|0x02; [Here, bit [1] will be 1 (because it was 0).
a= a|0x04; [Here, bit [2] will be 1 (because it was 0).
a= a|0x08; [Here, bit [3] will be 1 (because it was 0).
Thus, the final output will be '0F' (all four bits from 0 to 3 are set now).


Program - 5

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

Output

a= FF

Explanation

Bitwise NOT/ Negation/ One's compliment operator (~) reverses the bit(s) from 0 to 1 and 1 to 0, in this program value of a is 0x00 (in Binary: 0000 0000), statement a = ~a will reverse all the bits and assigned them into variable a again, then, the value of a will be 0xFF [in Binary: 1111 1111].


Want more exercise on C language Bitwise Operators - Find output of C programs.






Was this page helpful? Please share with your friends...

Are you a blogger? Join our Blogging forum.



Comments and Discussions





© https://www.includehelp.com (2015-2018), Some rights reserved.




close Like other websites, this site uses cookies to deliver relevant ads based on your interest, by using our website, you acknowledge that you have read our privacy policy.