バイナリ数値をグレイコードに変換するPythonプログラムの実装方法
バイナリコード(2進数)をグレイコードに変換する必要がある場合、XOR(排他的論理和)演算を行う関数を定義するのが一般的な手法です。グレイコードは、隣接する値が1ビットだけ異なるという特徴を持つ符号体系で、デジタル回路やエラー検出などの分野で広く利用されています。
以下に、その具体的な実装例を示します。
サンプルコード
def binary_to_gray_op(n):
n = int(n, 2)
n ^= (n >> 1)
return bin(n)[2:]
gray_val = input('Enter the binary number: ')
binary_val = binary_to_gray_op(gray_val)
print('Gray codeword is :', binary_val)実行結果
Enter the binary number: 101100110 Gray codeword is : 111010101
処理の解説
まず、「binary_to_gray_op」という名前の関数を定義し、バイナリ数値を引数として受け取ります。
関数内では、文字列として渡されたバイナリを
int(n, 2)で整数に変換した後、右シフト演算子(>>)で1ビットシフトした値とXOR演算を行います。これにより、バイナリからグレイコードへの変換が実現されます。変換結果は
bin()関数で再びバイナリ表現の文字列に戻され、先頭の「0b」を除いた形で返されます。プログラム本体では、
input()を使ってユーザーからバイナリ数値の入力を受け付けます。入力された値を引数として関数を呼び出し、変換処理を実行します。
最後に、変換後のグレイコードをコンソールに出力して表示します。
このように、XOR演算とビットシフトを組み合わせることで、わずか数行のコードで効率的にバイナリからグレイコードへの変換を行うことができます。
-
Pythonで10進数を2進数に変換する方法|再帰処理とbin()関数の実装例
この記事では、「10進数を2進数に変換する」という問題に対する解決策を、具体的なコード例とともにわかりやすく解説します。 問題の概要 問題: 与えられた10進数の整数を、それに対応する2進数表現へ変換する。 この問題を解くには、大きく分けて2つのアプローチがあります。順番に見ていきましょう。 方法1:再帰を使った実装 10進数を2進数に変換する基本的な考え方は、「数値を2で割り続け、その余りを記録する」ことです。再帰関数を使うと、除算を繰り返しながら余りを自動的に上位の桁から順に出力できます。 サンプルコード def DecimalToBinary(num): if num &g
-
Pythonで10進数を2進数に変換する方法|再帰と組み込み関数の2つのアプローチ
この記事では、10進数で表された数値を2進数に変換するPythonプログラムについて、その考え方と具体的な実装方法をわかりやすく解説します。 問題文 ある整数が与えられたとき、その数値を2進数に変換します。例えば、10進数の「35」は2進数では「100011」と表現されます。 アプローチ1:再帰を使った解法 再帰処理を利用すると、シンプルなコードで10進数を2進数に変換できます。基本的な流れは以下の擬似コードのとおりです。 DecToBin(num): if num > 1: &n