ホームページ >バックエンド開発 >C++ >C/C++ プログラム: 整数に設定された桁数を数えますか?

C/C++ プログラム: 整数に設定された桁数を数えますか?

王林
王林転載
2023-08-26 18:57:121259ブラウズ

C/C++ プログラム: 整数に設定された桁数を数えますか?

セットビットを数えるということは、指定された整数の 1 を数えるということです。このために、適用できるさまざまなソリューションをご用意しています。この場合、2 進数 (整数の 2 進表現) があり、文字列内の 1 の数をカウントする必要があります。

1 の数を数えるには、文字列を取得し、各要素を反復処理して、文字列内のすべての 1 の数を数えます。たとえば、17 を入力すると、17 のバイナリ表現は 10001 であり、1 が 2 つ含まれるため、出力は 2 になります。

Input: Enter a positive integer: 6
Output: 2

説明

6 のバイナリ表現は 110 で、これには 2 つのビットが設定されています。

この反復方法では、ビットごとに 1 回の反復が必要です。数字のすべての桁に実行されます。ビットが設定されなくなると反復は終了します。最悪の場合、最上位ビットのみが設定された 32 ビット ワードに対して 32 回ループします。この解決策は最も単純な解決策であり、1 がまばらで最下位ビットにある場合に役立ちます。

#include <stdio.h>
int main(void) {
   unsigned int n = 34;
   for (c = 0; n; n >>= 1) {
      c += n & 1;
   }
   printf("%d\n", c);
}

以上がC/C++ プログラム: 整数に設定された桁数を数えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。