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

Pythonでのみ2つの数値が1ビット位置で異なるかどうかを確認します


xとyの2つの数があるとします。これらの2つの数値が1ビットの位置で異なるかどうかを確認する必要があります。

したがって、入力がx =25 y =17の場合、バイナリではx =11001、y =10001であるため、出力はTrueになります。1ビットの位置のみが異なります。

これを解決するには、次の手順に従います-

  • z =x XOR y
  • zのセットビット数が1の場合、
    • Trueを返す
  • Falseを返す

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

サンプルコード

def bit_count(n):
   count = 0
   while n:
      count += n & 1
      n >>= 1
   return count
 
def solve(x, y):
   return bit_count(x ^ y) == 1

x = 25
y = 17
print(solve(x, y))

入力

25,17

出力

True

  1. いいえが2の累乗であるかどうかを調べるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 数nが与えられた場合、与えられた数が2の累乗であるかどうかを確認する必要があります。 アプローチ 入力数を2で割り続けます。つまり、=n/2を繰り返します。 各反復で、n%2がゼロ以外になり、nが1でない場合、nは2の累乗ではないことを確認します。 nが1になると、2の累乗になります。 以下の実装を見てみましょう- 例 def isPowerOfTwo(n):    if (n == 0):       retur

  2. 文字列に数字のみが含まれているかどうかをPythonで確認するにはどうすればよいですか?

    Pythonには組み込み関数isdigit()があり、文字列内のすべての文字が数字(0〜9)の場合にtrueを返します >>> string='9764135408' >>> string.isdigit() True >>> string='091-9764135408' >>> string.isdigit() False 正規表現を使用して、文字列に数字のみが含まれているかどうかを確認することもできます。 >>> import re >>> boo