in Programming in C recategorized by
4,392 views
0 votes
0 votes

What is the output of the following ‘C’ program? (Assuming little – endian representation of multi-byte data in which Least Significant Byte (LSB) is stored at the lowest memory address.)

#include<stdio.h>
#include<stdlib.h>
/* Assume short int occupies two bytes of storage */
int main ()
{
    union saving
    {
        short int one;
        char two[2];
    };
    union saving m;
    m.two [0] =5;
    m.two [1] =2;
    printf(“%d, %d, %d\n”, m.two[0], m.two[1], m.one);
}/* end of main */
  1. 5, 2, 1282
  2. 5, 2, 52
  3. 5, 2, 25
  4. 5, 2, 517
in Programming in C recategorized by
4.4k views

3 Comments

1
1
5 , 2 , 517 is correct option.

For the last one, it will be like this in memory ( 2 byte)

 00000010     00000101  = 517.
0
0

Why is it stored like this? @kumar.dilip

0
0

2 Answers

1 vote
1 vote
Answer (4)

4 Comments

Can u plz explain ??
1
1
needs an explanation.. please
1
1
0 votes
0 votes
Binary of 2: 00000010

Binary of 5: 00000101

so it stores in little endien so MSB+LSB

where MSB=2

LSB=5

so answer is 0000001000000101 : 517

Related questions