Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk mengira bilangan digit dalam nombor titik terapung dalam C?

Bagaimana untuk mengira bilangan digit dalam nombor titik terapung dalam C?

PHPz
PHPzke hadapan
2023-09-08 22:53:061265semak imbas

Dalam soalan ini, nilai titik terapung diberikan. Kita perlu mencari bilangan bit set dalam perwakilan binarinya.

Sebagai contoh, jika nombor titik terapung ialah 0.15625, terdapat enam set bit. Penyusun C biasa menggunakan perwakilan titik terapung ketepatan tunggal. Jadi ia kelihatan seperti ini.

Bagaimana untuk mengira bilangan digit dalam nombor titik terapung dalam C?

Untuk menukar kepada nilai bit, kita perlu meletakkan nombor itu ke dalam pembolehubah penunjuk dan kemudian menghantar penuding ke data jenis char*. Kemudian proses setiap bait satu demi satu. Kita kemudian boleh mengira bit set untuk setiap aksara.

Contoh

#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

Atas ialah kandungan terperinci Bagaimana untuk mengira bilangan digit dalam nombor titik terapung dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam