ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

# 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  will be 1 (because it was 0).
a= a|0x02; [Here, bit  will be 1 (because it was 0).
a= a|0x04; [Here, bit  will be 1 (because it was 0).
a= a|0x08; [Here, bit  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.

ADVERTISEMENT

ADVERTISEMENT

Comments and Discussions

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.