Bitwise Operators - Point Out Correct Statements Multiple Questions and Answers.
Exercise Questions ::
Bitwise Operators
1. | Which of the statements is correct about the program? |
|
#include<stdio.h>
int main()
{
unsigned int num;
int i;
scanf("%u", &num);
for(i=0; i<16; i++)
{
printf("%d", (num<<i & 1<<15)?1:0);
}
return 0;
}
|
| A. | It prints all even bits from num |
| B. | It prints all odd bits from num |
| C. | It prints binary equivalent num |
| D. | Error |
|
|
| Answer: Option C |
|
|
| Explanation: |
|
If we give input 4, it will print 00000000 00000100 ;
If we give input 3, it will print 00000000 00000011 ;
If we give input 511, it will print 00000001 11111111 ; |
| See More Information |
|
|
|
Tutorial Link: |
Published by:Michael Daani
2. | Which of the statements is correct about the program? |
|
#include<stdio.h>
int main()
{
unsigned int num;
int c=0;
scanf("%u", &num);
for(;num;num>>=1)
{
if(num & 1)
c++;
}
printf("%d", c);
return 0;
}
|
| A. | It counts the number of bits that are ON (1) in the number num. |
| B. | It counts the number of bits that are OFF (0) in the number num. |
| C. | It sets all bits in the number num to 1 |
| D. | Error |
|
|
| Answer: Option A |
|
|
| Explanation: |
|
If we give input 4, it will print 1. Binary-4 == 00000000 00000100 ; Total number of bits = 1.
If we give input 3, it will print 2. Binary-3 == 00000000 00000011 ; Total number of bits = 2.
If we give input 511, it will print 9. Binary-511 == 00000001 11111111 ; Total number of bits = 9. |
| See More Information |
|
|
|
Tutorial Link: |
Published by:Michael Daani
3. | Which of the statements is correct about the program? |
|
#include<stdio.h>
char *fun(unsigned int num, int base);
int main()
{
char *s;
s=fun(128, 2);
s=fun(128, 16);
printf("%s\n",s);
return 0;
}
char *fun(unsigned int num, int base)
{
static char buff[33];
char *ptr = &buff[sizeof(buff)-1];
*ptr = '\0';
do
{
*--ptr = "0123456789abcdef"[num %base];
num /=base;
}while(num!=0);
return ptr;
}
|
| A. | It converts a number to a given base. |
| B. | It converts a number to its equivalent binary. |
| C. | It converts a number to its equivalent hexadecimal. |
| D. | It converts a number to its equivalent octal. |
|
|
Published by:Michael Daani
4. | Which of the statements is correct about the program? |
|
#include<stdio.h>
int main()
{
unsigned int m[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
unsigned char n, i;
scanf("%d", &n);
for(i=0; i<=7; i++)
{
if(n & m[i])
printf("yes");
}
return 0;
}
|
| A. | It will put OFF all bits that are ON in the number n |
| B. | It will test whether the individual bits of n are ON or OFF |
| C. | It will put ON all bits that are OFF in the number n |
| D. | It will report compilation errors in the if statement. |
|
|
Published by:Michael Daani