ホームページ  >  記事  >  バックエンド開発  >  Python で 10 進数と 2 進数を変換する方法

Python で 10 進数と 2 進数を変換する方法

黄舟
黄舟オリジナル
2017-10-12 11:12:259107ブラウズ

この記事では、主に 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。