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)