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.
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.

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 ;

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.
Ad Slot (Above Pagination)
Quiz