Exercise: Bitwise Operators
Questions for: Bitwise Operators
Which of the following statements are 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.
Answer: B
No answer description is available. Let's discuss.
Which of the following statements are 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.
Answer: A
No answer description is available. Let's discuss.
Discuss About this Question.
Which of the following statements are 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: A
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.
Discuss About this Question.
Which of the following statements are 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: C
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 ;
Discuss About this Question.
What will be the output of the program ?
#include<stdio.h>
int main()
{
int i=4, j=8;
printf("%d, %d, %d\n", i|j&j|i, i|j&&j|i, i^j);
return 0;
}
A:
4, 8, 0
B:
1, 2, 1
C:
12, 1, 12
D:
0, 0, 0
Answer: C
No answer description is available. Let's discuss.
Discuss About this Question.
Ad Slot (Above Pagination)
Discuss About this Question.