Python :: Aufgabe #168
8 Lösungen
Zahlen umwandeln: Binär zu Dezimal
Anfänger - Python
von Nachbar
- 13.09.2017 um 14:19 Uhr
Schreibe eine Funktion, die Zahlen aus dem Dualsystem in Zahlen des Dezimalsystems umwandelt.
Beispiel:
Binär: 11010
Dezimal: 26
Beispiel:
Binär: 11010
Dezimal: 26
Lösungen:
import math # input number in binary. binary_number = '11010' # print decimal print(sum([int(j)*int(math.pow(2,i)) for i,j in enumerate(binary_number[::-1])]))
So kurz wie möglich...
def binaer(folge):
folge = list(str(folge)) # einzelne Stellen der Eingabe in Liste packen
hochz = 0 # Hochzahl für Berechnung
dez = 0
for i in range(len(folge)-1, -1, -1): # Liste rückwärts durchgehen
if int(folge[i]) == 1: # Falls Stelle relevant Ergebnis addieren
dez += 2 ** hochz
hochz += 1 # nächste Hochzahl
return dez
folget = 1010110001100
print('Soll:', int(str(folget), 2)) # Überprüfung des Ergebnisses mit Python-eigener Methode
print('Ist:', binaer(folget))
# -*- coding: utf-8 -*-
# Python 2.7
def dezimal(binzahl):
print "\nDezimal: " + str(int(binzahl, 2))
dezimal(raw_input("Binaerzahl: "))# "Wandle eine Binär-Zahl in eine Dezimal-Zahl" von SamYoshihara
while True:
a = input ('binär: ')
b = len (a) - 1
c = 0
for i in range (0, b + 1):
if int (a[b - i]) == 1: # alle Ziffern, die nicht 1 sind, werden als 0 gewertet
c += (int (a[b - i])) * (2 ** i)
print ("dezimal:", c)
print ()#DEZIMAL UMWANDLER
#BINÄR UMWANDLER
import time
def dezimal(b):
liste = []
zahl = 0
d = 1
for x in range(len(b)):
liste.append(1)
for x in range(len(b)):
if int(b[len(b)-x-1]) == 1:
zahl += d
d *= 2
return zahl
def binär(d):
zahlen = []
i = 1
for x in range(d):
zahlen.append(i)
i *= 2
if i > d:
i /= 2
i = int(i)
break
zahlen.reverse()
liste = []
listestr = ""
i = 0
while len(liste) < len(zahlen):
if zahlen[i] <= d:
liste.append(1)
d -= zahlen[i]
else:
liste.append(0)
i += 1
for x in liste:
listestr += str(x)
return listestr
def start():
print("\n"*50)
print("Binär in Dezimal | Dezimal in Binär")
print("")
print("Binärzahl eingeben [B]")
print("Dezimalzahl eingeben [D]")
print("\n")
choice = input(">> ")
zahl = 0
try:
if (choice == "B") or (choice == "b"):
print("\n"*50)
print("Gebe eine binäre Zahl ein:")
print("\n")
zahl = int(input(">>"))
for x in str(zahl):
if (x != "1") and (x != "0"):
print("Das ist keine binäre Zahl. BSP: 11010 (=26)")
input()
start()
print("Umgewandelt: " + str(dezimal(str(zahl))))
input()
start()
elif (choice == "D") or (choice == "d"):
print("\n"*50)
print("Gebe eine dezimale Zahl ein:")
print("\n")
zahl = int(input(">>"))
print("Umgewandelt: " + str(binär(zahl)))
input()
start()
else:
print("Eingabe wurde nicht erkannt!")
input()
start()
except Exception:
print("ERROR")
input()
start()
start()"""
Created on Wed Apr 25 11:18:17 2018
@author: Thomas Anderson
"""
binzahl = 0 #Binärzahl
dezzahl = 0 #Dezimalzahl
binzahl = '1011100'
for zahl in binzahl:
if zahl == '1':
dezzahl += 2**(len(binzahl)-1)
binzahl = binzahl[1:]
print('Dezimalzahl: ', dezzahl)
# -*- coding: utf-8 -*-
# Python 3.6
x = int(input("Binärzahl eingeben : "),2)
print(x)
import math
bi = input("Binär: ")
binSplit= [int(i) for i in str(bi)]
c=0
erg=0
count=len(binSplit)-1
for i in binSplit:
if i==1:
erg+=pow(2,count-c)
c+=1
print(erg)
