edited by
11,368 views
27 votes
27 votes

Consider the function func shown below: 

int func(int num) { 
   int count = 0; 
   while (num) { 
     count++; 
     num>>= 1; 
   } 
   return (count); 
} 

The value returned by func($435$) is ________

edited by

5 Answers

Best answer
45 votes
45 votes

Answer is $9$.

$435-(110110011) $

num $>>=$ $1$; implies a num is shifted one bit right in every while loop execution.While loop is executed $9$ times successfully and $10$th time num is zero.

So count is incremented $9$ times.

Note:

Shifting a number "1"bit position to the right will have the effect of dividing by $2$:

8 >> 1 = $4    // In binary: (00001000) >> 1 = (00000100)
edited by
18 votes
18 votes
int func(int num) // take decimal number
{ 
   int count = 0; 
   while (num) // until all bits are zero
   { 
     count++; // count bit 
     num>>= 1; // shift bits, removing lower bit
   } 
   return (count); // returns total number of bits
} 


(435)10 = (110110011)2 
So, the given program counts total number of bits in binary representation . Hence, answer is 9

http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer

reshown by
7 votes
7 votes

The function mainly returns position of Most significant bit in binary representation of n. The MSB in binary representation of 435 is 9th bit.

Another explanation : >> in right shift. In other words, it means divide by 2. If keep on dividing by 2, we get: 435, 217, 108, 54, 27, 13, 6, 3, 1. Therefore, the count is 9.

edited by
2 votes
2 votes

435 in binary ....................100110011...............count =0

first count is incremented then bitwise shift >>1 is done

count = 1 ............010011001

count = 2 ............001001100

count = 3 ............000100110

count = 4 ............000010011

count = 5 ............000001001

count = 6 ............000000100

count = 7 ............000000010

count = 8 ............000000001

count = 9 ............000000000

finally, count = 9

Answer:

Related questions

5 votes
5 votes
2 answers
1
Souvik33 asked Jan 15, 2023
1,095 views
Consider the function func shown below: int func(int num) { int count = 0; while (num) { count++; num>>= 1; } return (count); }The value returned by func(-435) is:69Will ...
25 votes
25 votes
3 answers
3
go_editor asked Sep 28, 2014
9,750 views
The number of distinct positive integral factors of $2014$ is _____________
33 votes
33 votes
3 answers
4
go_editor asked Sep 28, 2014
7,204 views
Given an instance of the STUDENTS relation as shown as below$$\begin{array}{|c|c|c|c|c|} \hline \textbf {StudentID} & \textbf{StudentName} & \textbf{StudentEmail} & \text...