English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Pythonのバイナリからデシマル、逆も然り

10進数と2進数が与えられた場合、私たちのタスクは10進数を2進数に変換し、2進数を10進数に変換することです。

アルゴリズム

Bintodec()

ステップ1: バイナリ数を入力します。
ステップ2: 次にバイナリ数の長さを取ります。
ステップ3: forループを使用してバイナリを10進数に変換します。
もしバイナリ数が以下のようなら、まるでそのようになります 1111, その場合、計算は以下のようになります
1*2**3+1*2**2+1*2**1+1*2**0 = 15
ステップ4: 数値を表示します。

Dectobin()

ステップ1: 10進数を入力します。
ステップ2: whileループを使用して
*それで数を割ります 2. 余りと商を両方求めます。別の変数を以下のように初期化します。 1。
今度は余りをこの変数と乗じて、最終出力数に加えます。その変数は以下のように増分されます。 1。
*最初の余りは数列の最後の桁です。
ステップ3: 値を表示。

サンプルコード

print("*****************************************************)
print(" 十進数から二進数への変換および二進数から十進数への変換")
print("*****************************************************)
print(" 十進数から二進数への変換に…押してください 1.")
print(" 二進数から十進数への変換に…押してください 2)
print("*****************************************************)
my_choice=int(input("あなたの選択を入力してください: "))
if my_choice==1:
i=1
s=0
my_dec=int(input("変換する十進数を入力してください: "))
while my_dec>0:
   rem=int(my_dec%2)
   s=s+(i*rem)
   my_dec=int(my_dec/2)
   i=i*10
   print ("与えられた数の二進数は",s,'.')
else:
   my_bin=input ('変換する二進数を入力してください: ')
   n=len(my_bin)
   res=0
for i in range(1,n+1):
   res=res+ int(my_bin[i-1])*2**(n-i)
print("与えられた二進数の十分位は",res,'.')
print("******************************************************)

出力結果

*****************************************************
十進数から二進数への変換および二進数から十進数への変換
*****************************************************
print(" 十進数から二進数への変換に…押してください 1.")
print(" 二進数から十進数への変換に…押してください 2)
*****************************************************
あなたの選択を入力してください: 1
変換する十進数を入力してください: 15
与えられた数の二進数は 1111。
******************************************************
*****************************************************
十進数から二進数への変換および二進数から十進数への変換
*****************************************************
十進数から二進数への変換に…押してください 1。
二進数から十進数への変換に…押してください 2
*****************************************************
あなたの選択を入力してください: 2
変換する二進数を入力してください: 1111
与えられた二進数の十分位は 15。
******************************************************