
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Count Set Bits in a Floating Point Number in C
In this problem, one floating point value is given. We have to find number of set bits in the binary representation of it.
For example, if a floating point number is 0.15625, so there are six set bits. A typical C compiler used single precision floating point representation. So it will be look like this.
To convert into its bit values, we have to take the number into one pointer variable, then typecast the pointer to char* type data. Then process each byte one by one. Then we can count set bits of each char.
Example
#include <stdio.h> int char_set_bit_count(char number) { unsigned int count = 0; while (number != 0) { number &= (number-1); count++; } return count; } int count_float_set_bit(float x) { unsigned int n = sizeof(float)/sizeof(char); //count number of characters in the binary equivalent int i; char *ptr = (char *)&x; //cast the address of variable into char int count = 0; // To store the result for (i = 0; i < n; i++) { count += char_set_bit_count(*ptr); //count bits for each bytes ptr++; } return count; } main() { float x = 0.15625; printf ("Binary representation of %f has %u set bits ", x, count_float_set_bit(x)); }
Output
Binary representation of 0.156250 has 6 set bits
Advertisements