### Author Topic: If the following program fragment (assume negative numbers are stored in 2's  (Read 643 times)

#### mechanic

##### If the following program fragment (assume negative numbers are stored in 2's
« on: March 07, 2017, 02:16:06 PM »
Question: If the following program fragment (assume negative numbers are stored in 2's complement form)

unsigned i = 1;
int j = -4 ;
printf["%u", i + j);
prints x, then printf{"%d", 8*sizeof(int)};

options are:

A. an unpredictable value
B. 8*log{x+3}
C. log (x+3)
D. none of the above

C. log (x+3)

Explanation:

Let sizeof(int) = 1. so -4 will be stored as 11111100. since we are adding unsigned and signed integers, the signed gets converted to unsigned, so, i + j will become 11111101. we are trying to print this as an unsigned integer. so, what is printed will be 28 - 1 - 2. So, log(x + 3) = 8 (i.e. 8*sizeof{int}).

#### Engineering Forum

##### If the following program fragment (assume negative numbers are stored in 2's
« on: March 07, 2017, 02:16:06 PM »