what is output of the following statetment?Printf(“%x”,
-1<<4); ?

Answers were Sorted based on User's Feedback



what is output of the following statetment?Printf(“%x”, -1<<4); ?..

Answer / sasmita lenka

Answer fff0.........As -1 is internally represented as as
all 1's.When left shifted four times the least significant 4
bits are filled with 0's.The %x format specifier specifies
that the integer value be printed as a hexadecimal value.

Is This Answer Correct ?    14 Yes 1 No

what is output of the following statetment?Printf(“%x”, -1<<4); ?..

Answer / ankurmohansharma

In case of 16- bit compiler answer will be fff0
In case of 32-bit compiler answer will be fffffff0.

Reason being same as of above two

Is This Answer Correct ?    7 Yes 0 No

what is output of the following statetment?Printf(“%x”, -1<<4); ?..

Answer / vignesh1988i

here the equivalent representation for -1 in memory is it's
two's compliment notation..... so alll the 16 bits will be
HIGH (1).... so four time we are moving the bits left
side.... so after that it will result as 65520.... the
equivalent HEX value for 65520 will get printed.........



thank u

Is This Answer Correct ?    5 Yes 4 No

what is output of the following statetment?Printf(“%x”, -1<<4); ?..

Answer / arupananda

Question is -1<<4
Answer to 16bit compiler
As -1 is a negative number,so compiler first convert this number with removing negative sign to 2's complement
Here -1 is given
so compiler first removes the -ve sign and then convert to 2's complement
Binary form of 1 for 16 bit compiler is 0000 0000 0000 0001
1's complement of 1 is 1111 1111 1111 1110
2's complement of 1 is 1111 1111 1111 1111(1+1's complement)
now do the left shift operation
1111 1111 1111 1111 << 4
which results 1111 1111 1111 0000
i.e equivalent to FFF0 in hex format
So the answer is FFF0 for 16 bit compiler
And for 32 bit compiler it is FFFF FFF0 (do same operation as 16 bit compiler)

Is This Answer Correct ?    1 Yes 1 No

what is output of the following statetment?Printf(“%x”, -1<<4); ?..

Answer / ranjith

-1 is stored as '1' 32 times [i.e. ffffffff], doing a left
shift 4 times results in '1' 28 times followed by 4 zeros.
[i.e. in hexadecimal ffffffff0].

Therefore the output for the above printf is fffffff0.

Thanks,
Ranjith

Is This Answer Correct ?    5 Yes 6 No

Post New Answer

More C Interview Questions

what is the output of printf("%d",(scanf("%d",10));

10 Answers  


Take an MxN matrice from user and then sum upper diagonal in a variable and lower diagonal in a separate variables. Print the result

0 Answers  


Explain high-order and low-order bytes.

0 Answers  


What does c in a circle mean?

0 Answers  


Dont ansi function prototypes render lint obsolete?

0 Answers  






we compile c program in 32 processor and 64 bit processor .exe file is created in both the processors. if we want to run .exe file in 64 bit processor which is created in 32 bit processor. is that .exe file is run or not if it is not run why?

4 Answers   HP, Wipro,


How do you write a program which produces its own source code as its output?

2 Answers  


Once I have used freopen, how can I get the original stdout (or stdin) back?

0 Answers  


What is putchar() function?

0 Answers  


Why calloc is better than malloc?

0 Answers  


Can you mix old-style and new-style function syntax?

0 Answers  


why programming language C is still used in operating system's kernel??

1 Answers   Wipro,


Categories