Rumah >pembangunan bahagian belakang >C++ >Program C/C++: Kira bilangan digit yang ditetapkan dalam integer?
Mengira bit set bermakna mengira 1s untuk integer tertentu. Untuk ini, kami mempunyai pelbagai penyelesaian yang boleh digunakan. Untuk kes ini, kita mempunyai nombor binari (perwakilan binari integer), yang mana kita perlu mengira nombor 1 dalam rentetan.
Untuk mengira nombor 1, kami akan mengambil rentetan, mengulangi setiap elemen dan mengira nombor semua 1 dalam rentetan. Sebagai contoh, jika kita memasukkan 17, output akan menjadi 2 kerana perwakilan binari 17 ialah 10001, yang mengandungi dua 1s.
Input: Enter a positive integer: 6 Output: 2
Perwakilan binari 6 ialah 110, yang mempunyai 2 set bit
Kaedah lelaran ini memerlukan satu lelaran untuk setiap bit. Ia melalui semua digit nombor. Lelaran ditamatkan apabila tiada lagi bit ditetapkan. Dalam kes yang paling teruk, ia akan gelung selama 32 lelaran untuk perkataan 32-bit dengan set bit yang paling ketara sahaja. Penyelesaian ini ialah penyelesaian yang paling mudah dan berguna jika 1 adalah jarang dan dalam bit yang paling tidak ketara.
#include <stdio.h> int main(void) { unsigned int n = 34; for (c = 0; n; n >>= 1) { c += n & 1; } printf("%d\n", c); }
Atas ialah kandungan terperinci Program C/C++: Kira bilangan digit yang ditetapkan dalam integer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!