この記事では、主に Python で実装された 10 進数と 2 進数の間の変換関数を紹介します。2 進数と 10 進数の間の変換の原理と、Python の関連する実装スキルを詳細に分析します。必要な友人は参考にしてください。
この記事の例はPythonで10進数と2進数の相互変換機能を実装しています。参考までに皆さんにシェアします。詳細は以下の通りです:
10進数⇒2進数
2を掛けて切り上げます
10進数に2を掛けるとが得られます整数部分と小数部分、
整数部分は対応する2進数であり、
は小数部分を2で乗算し(前の乗算の結果は新しい小数部分になります)、整数と小数部分は部品が入手できます。
小数部分が 0 になるか、精度要件に達するまでこれを繰り返します
最初に取得するときは最上位ビット、最後に取得するときは最下位ビットになります
例:
2進数の0.25
0.25*2=0.5 四捨五入は0
0.5*2=1.0 四捨五入は1
、つまり、2進法0.25は0.01 (初回は最上位ビット、最後に取得したものが最下位ビット)
0.8125 バイナリ
0.8125*2=1.625 四捨五入は 1
0.625*2= 1.25 四捨五入は 1
0 です。 25 *2=0.5 四捨五入は 0 です
0.5*2=1.0 四捨五入は 1
0.8125 の 2 進法は 0.1101 (最初の結果が最上位桁、最後に取得した結果が最下位桁)
def dec2bin(x): x -= int(x) bins = [] while x: x *= 2 bins.append(1 if x>=1. else 0) x -= int(x) return bins print(dec2bin(.8125)) # [1, 1, 0, 1]
2進数の10進数 ⇒ 10進数の10進数
小数点以下から左から右に、各ビットは
def bin2dec(b): d = 0 for i, x in enumerate(b): d += 2**(-i-1)*x return d print(dec2bin(0.8125)) # [1, 1, 0, 1] print(bin2dec(dec2bin(0.8125))) # 0.8125
以上がPython で 10 進数と 2 進数を変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。