Give a very good method to count the number of ones in a 32
bit number.
(caution: looping through testing each bit is not a solution)

Answer Posted / turk

Here is an O(logn) solution

#include<stdio.h>

int numberOfOnesByte(unsigned char c, int length){
if (c==0)
return 0;
if (c==1)
return 1;
unsigned char left, right;
int lengthP = length/2;
left = c>>lengthP;
right = c-(left<<lengthP);
return numberOfOnesByte(left,length-lengthP)+numberOfOnesByte(right,lengthP);
}
int numberOfOnes(unsigned char *array, int start, int end, int length){
if(length==1){
return numberOfOnesByte(array[start],8);
} else {
int lengthP = length/2;
return numberOfOnes(array,start,start+lengthP-1,lengthP)+
numberOfOnes(array,start+lengthP,end,length-lengthP);
}
}
int main(){
unsigned char array[8] = {0xFF,0XAA,0xFF,0XAA,0xFF,0XAA,0xFF,0XAA};
printf("number of bits %d\n",numberOfOnes(array,0,7,8));
return 0;
}

Is This Answer Correct ?    3 Yes 5 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Given a spherical surface, write bump-mapping procedure to generate the bumpy surface of an orange

2867


Develop a routine to reflect an object about an arbitrarily selected plane

3004


What is the match merge ? compare data step match merge with proc sql merge - how many types are there ? data step vs proc sql

2417


Write a routine to implement the polymarker function

4390


Cluster head selection in Wireless Sensor Network using C programming language.

3120






Write a program to model an exploding firecracker in the xy plane using a particle system

3697


why do you use macros? Explain a situation where you had to incorporate macros in your proc report? use a simple instream data example with code ?

2267


how to programme using switch statements and fuctions, a programme that will output two even numbers, two odd numbers and two prime numbers of the users chioce.

2147


how to test pierrot divisor

2266


how to create a 3x3 two dimensional array that will give you the sums on the left and bottom columns

3133


create a C-code that will display the total fare of a passenger of a taxi if the driver press enter,the timer will stop. Every 10 counts is 2 pesos. Initial value is 25.00

6321


In a gymnastic competition, scoring is based on the average of all scores given by the judges excluding the maximum and minimum scores. Let the user input the number of judges, after that, input the scores from the judges. Output the average score. Note: In case, more than two judges give the same score and it happens that score is the maximum or minimum then just eliminate two scores. For example, if the number of judges is 5 and all of them give 10 points each. Then the maximum and minimum score is 10. So the computation would be 10+10+10, this time. The output should be 10 because 30/3 is 10.

2391


Design an implement of the inputs functions for event mode

2970


write a program for area of circumference of shapes

2040


How do you verify if the two sentences/phrases input is an anagram using predefined functions in string.h and by using arrays?

2032