Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの1ビット数


符号なしの番号nがあるとします。この数の2進表現で1の数を見つける必要があります。これは、ハミング重みとも呼ばれます。したがって、数値が000000101101のような場合、結果は4になります。

これを解決するために、これらの手順を使用します-

  • 数値を取得してバイナリ文字列に変換します
  • カウントを設定=0
  • バイナリ文字列の各文字eについて
    • 文字が「1」の場合は、カウントを1増やします
  • 返品数

理解を深めるために、次の実装を見てみましょう-

class Solution(object):
   def hammingWeight(self, n):
      """
      :type n: int
      :rtype: int
      """
      n = str(bin(n))
      print(n)
      one_count = 0
      for i in n:
         if i == "1":
            one_count+=1
      return one_count
num = "000000101101"
ob1 = Solution()
print(ob1.hammingWeight(num))

入力

num = "000000101101"

出力

4

  1. Pythonのfactorial()

    数値の階乗を見つけることは、Pythonを含むデータ分析やその他の数学的分析で頻繁に必要とされます。階乗は、1から指定された数までのすべての整数を乗算することにより、常に正の整数に対して検出されます。以下に示すように、これを見つけるには3つのアプローチがあります。 Forループの使用 forループを使用して、指定された数まで1番を繰り返し、各ステップで乗算を続けることができます。以下のプログラムでは、ループで使用する前に、数値を入力して入力を整数に変換するようにユーザーに求めています。このようにして、計算で正の整数を確実に取得します。 例 n = input("Enter a nu

  2. 正の整数のビットを逆にするPythonプログラム?

    まず、bin()関数を使用して数値を2進数に変換します。次に、bin()が数値の2進表現のプレフィックスとして0bを追加し、残りの部分を逆にするため、2進表現の最初の2文字をスキップします。また、文字から、左から最後から2番目の文字まで反転します。反転した2進文字列を整数に変換します。 アルゴリズム integernumber(n,bit_size) /* n is the number and bit_size is the bitsize */ Step 1: first convert number into binary . Step 2: skip the first two c