Python :: Aufgabe #168

8 Lösungen Lösungen öffentlich

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

Lösungen:

vote_ok
von ZRX88 (2770 Punkte) - 14.09.2017 um 14:47 Uhr
Quellcode ausblenden Python-Code
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...
vote_ok
von 0 (0 Punkte) - 23.09.2017 um 16:27 Uhr
Quellcode ausblenden Python-Code
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))
vote_ok
von Nachbar (2820 Punkte) - 21.10.2017 um 13:59 Uhr
Quellcode ausblenden Python-Code
# -*- coding: utf-8 -*-
# Python 2.7

def dezimal(binzahl):
    print "\nDezimal: " + str(int(binzahl, 2))

dezimal(raw_input("Binaerzahl: "))



vote_ok
von SamYoshihara (120 Punkte) - 21.10.2017 um 22:19 Uhr
Quellcode ausblenden Python-Code
# "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 ()
vote_ok
von Agent_X29 (20 Punkte) - 01.12.2017 um 15:10 Uhr
Quellcode ausblenden Python-Code
#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()
vote_ok
von t.anderson (60 Punkte) - 27.04.2018 um 00:26 Uhr
Quellcode ausblenden Python-Code
"""
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)
1x
vote_ok
von Gisbert5020 (3120 Punkte) - 08.07.2018 um 18:41 Uhr
Quellcode ausblenden Python-Code
# -*- coding: utf-8 -*-
# Python 3.6
x = int(input("Binärzahl eingeben : "),2)
print(x)
vote_ok
von Kotgreifer (1100 Punkte) - 15.01.2020 um 11:58 Uhr
Quellcode ausblenden Python-Code
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)
2097958

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.