Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: DEZINBIN mit 16 binären Stellen

DEZINBIN mit 16 binären Stellen
25.04.2008 21:13:00
Neumann
Wie kann ich die Formel =DEZINBIN(511;10) abändern, damit ich =DEZINBIN(32767;16) eingeben kann?
https://www.herber.de/bbs/user/51878.xls
Gruß Jan

Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: DEZINBIN mit 16 binären Stellen
25.04.2008 22:00:20
Luschi
Hallo Jan,
wahrscheinlich mußt Du Dir da eine eigene Funktion schreiben. In der Excel2007-Hilfe steht:
Syntax:
DEZINBIN(Zahl;Stellen)
Hinweise:
Ist Zahl 511, gibt DEZINBIN den Fehlerwert #ZAHL! zurück.
Gruß von Luschi
aus klein-Paris

AW: DEZINBIN mit 16 binären Stellen
25.04.2008 22:34:53
Neumann
Hallo Luschi.
Ich habe schon so etwas befürchtet. Hatte auch die Hilfe gelesen.
Danke.
Gruß Jan

Anzeige
AW: DEZINBIN mit 16 binären Stellen
25.04.2008 22:06:00
ransi
HAllo
Keine Ahnung was die 16 macht...
Sind das die Anzahl Stellen ?
Bis 32 stellen z.B.so:
Tabelle1

 A
11234561789
21001001100101011110101011111101

Formeln der Tabelle
ZelleFormel
A2=MyUmrechnung(A1;2)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Dieser Code gehört in ein Modul:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit



Public Function MyUmrechnung(zelle, sys)
Dim zahl As Double
Dim s As String
zahl = zelle
s = s & (zahl Mod sys)
Do Until Int(zahl / sys) = 0
    zahl = Int(zahl / sys)
    s = s & (zahl Mod sys)
Loop
MyUmrechnung = StrReverse(s)
End Function

ransi

Anzeige
Kleine Korrektur
25.04.2008 22:13:24
ransi
HAllo
Der eben gepostete Code läuft bei Werten <0 in eine Endlosschleife.
Hier ist die korrigierte Version:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit



Public Function MyUmrechnung(zelle, sys)
Dim zahl As Double
Dim s As String
If zahl < 0 Then Exit Function
zahl = zelle
s = s & (zahl Mod sys)
Do Until Int(zahl / sys) = 0
    zahl = Int(zahl / sys)
    s = s & (zahl Mod sys)
Loop
MyUmrechnung = StrReverse(s)
End Function

sys steht für das Zahlensystem in das umgerechnet werden soll.
Für binär also eine 2.
ransi

Anzeige
AW: Kleine Korrektur
25.04.2008 22:31:00
Neumann
Hallo ransi.
In der korrigierten Version läuft er bei kleiner 0 auch in eine Endlosschleife.
Aber grundsätzlich ist es das, was ich gesucht habe.

AW: Kleine Korrektur
25.04.2008 22:37:00
ransi
HAllo Neuman
Sorry !
Peinlich, Peinlich...
Korrektur einer Korrektur....
Kommt davon wenn man im Post rumeditiert.
So sollte es laufen:
Option Explicit



Public Function MyUmrechnung(zelle, sys)
Dim zahl As Double
Dim s As String
zahl = zelle
If zahl < 0 Then Exit Function
s = s & (zahl Mod sys)
Do Until Int(zahl / sys) = 0
    zahl = Int(zahl / sys)
    s = s & (zahl Mod sys)
Loop
MyUmrechnung = StrReverse(s)
End Function

ransi

Anzeige
AW: Kleine Korrektur
25.04.2008 22:43:27
Neumann
Hallo ransi.
Kein Problem. Das hat mir sehr weitergeholfen.
Jetzt habe ich schon mal die Hälfte meines Problems gelöst.
Danke, danke, danke.
Gruß Jan

AW: Kleine Korrektur
26.04.2008 12:22:49
Reinhard
Hi Jan,
mal ein andrer Ansatz,
=DEZINBIN(GANZZAHL(A3/512);8)&DEZINBIN(REST(A3;512);8)
ich weiß, da müssen noch paar WENNs rein je nach Zahl, ist nur so als Gedanke
Gruß
Reinhard

Anzeige
Das kann man mit Dezimalzahlen nicht...
27.04.2008 00:10:00
Luc:-?
...machen, nur mit Oktal- und Hexadezimalzahlen, Reinhard.
Denn, wenn ich dann über dein Ergebnis eine mit den Potenzen von 2 gewichtete Quersummenfkt laufen lasse, kommt bestimmt was anderes raus als bei der anderen Lösung.
Ein paar WENNs reichen da nicht, es sei denn, du willst ziffernweise verschlüsseln, was einen hexadezimalen "Anstrich" hätte. Aber dafür ist dein Ansatz ja nicht gedacht... ;-)
Gruß Luc :-?

Anzeige
Doch das geht mit Dezimalzahlen
27.04.2008 15:27:59
Reinhard
Hallo Luc,
ich habe jetzt die Zahlen von 0 bis 65535 getestet, die Formel funktioniert:
=DEZINBIN(GANZZAHL(A1/512);7)&DEZINBIN(REST(A1;512);9)
Überprüft habe ich es durch die Funktion von Rainer.
Gruß
Reinhard

AW: Doch das geht mit Dezimalzahlen
27.04.2008 20:59:00
Neumann
Hallo Reinhard.
Danke, das hilft mir sehr weiter.
Vielen Dank.
Gruß Jan

Anzeige
Ja, du hast recht! Hatte nur das "&"...
01.05.2008 01:10:00
Luc:-?
...gesehen und nicht auf die Rechnung geachtet, Reinhard.
Allerdings geht's mit VBA noch weiter. Mein Maximum liegt bei einer Dezimalzahl bei deutlich >2 Mio.
Gruß Luc :-?

AW: DEZINBIN mit 16 binären Stellen
26.04.2008 10:51:45
Sigi
Hallo Jan,
mit folgender VBA-Funktion für positive bis zu 15-stellige Zahlen (Grenze der Excel-Signifikanz) geht's:
Function DEZ2BIN_Stellen(Zahl As Double, Stellen As Long) As String Dim Aus As String Dim Exp As Long If Zahl = (2 ^ Exp) Then Aus = Aus & "1" Zahl = Zahl - (2 ^ Exp) Else Aus = Aus & "0" End If Next Exp Else Aus = "#WERT!" End If DEZ2BIN_Stellen = Aus End Function


Gruß
Sigi

Anzeige
AW: DEZINBIN mit 16 binären Stellen
27.04.2008 10:03:57
Erich
Hi Jan,
das geht auch ohne VBA und Schleifen:
 AB
15110000000111111111
2655351111111111111111

Formeln der Tabelle
ZelleFormel
B1=RECHTS(SUMMENPRODUKT(GANZZAHL(REST(A1/2^(ZEILE($16:$30)-1); 2))*10^(ZEILE($1:$15)-1)) &TEXT(SUMMENPRODUKT(GANZZAHL(REST(A1/2^(ZEILE($1:$15)-1); 2))*10^(ZEILE($1:$15)-1)); WIEDERHOLEN("0";15)); 16)
A2=16^4-1

( nach http://www.excelformeln.de/formeln.html?welcher=262 )
Bei excelformeln.de gibts noch mehr zu Zahlsystemen: http://www.excelformeln.de/formeln.html?gruppe=18
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: DEZINBIN mit 16 binären Stellen
27.04.2008 21:04:00
Neumann
Hallo Erich.
Danke. Gute Formel.
Auch genau das, was ich gesucht habe. Und danke für den Tip.
Gruß Jan

Ich danke Euch
27.04.2008 21:08:00
Neumann
Ich danke Euch allen für die Vorschläge und Hilfen.
Ich konnte mit Eurer Hilfe mein Problem lösen.
Super, daß das mit der Hilfe im Forum so toll klappt.
Vielen Dank.
Gruß Jan
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

DEZINBIN mit 16 binären Stellen


Schritt-für-Schritt-Anleitung

Um die Excel-Funktion DEZINBIN für 16 binäre Stellen zu nutzen, kannst Du folgende Schritte befolgen:

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.
  2. Gib eine Zahl in eine Zelle ein (maximal 32767 für 16 Stellen).
  3. Verwende die Funktion =DEZINBIN(Zahl; 16) in einer anderen Zelle. Zum Beispiel:
    =DEZINBIN(32767; 16)
  4. Drücke Enter, um das Ergebnis anzuzeigen. Die Funktion gibt die binäre Darstellung der Zahl zurück, sofern sie im gültigen Bereich liegt.

Falls Du eine Zahl größer als 32767 verwenden möchtest, musst Du auf alternative Methoden zurückgreifen.


Häufige Fehler und Lösungen

  • #ZAHL! Fehler: Dieser Fehler tritt auf, wenn Du eine Zahl eingibst, die größer als 32767 ist. Verwende stattdessen eine eigene Funktion oder VBA, um größere Zahlen in binär darzustellen.

  • Endlosschleifen in VBA: Wenn Du eine eigene Funktion schreibst, achte darauf, dass Du Bedingungen für negative Werte einfügst, um Endlosschleifen zu vermeiden. Beispiel:

    If Zahl < 0 Then Exit Function

Alternative Methoden

  1. VBA-Funktion: Du kannst eine eigene VBA-Funktion schreiben, die auch große Zahlen berücksichtigt. Hier ein Beispiel:

    Public Function DEZ2BIN_Stellen(Zahl As Double, Stellen As Long) As String
       ' Deine Logik hier
    End Function
  2. Formeln ohne VBA: Du kannst auch komplexe Formeln verwenden, um Dezimalzahlen in binär umzuwandeln, z.B.:

    =RECHTS(SUMMENPRODUKT(GANZZAHL(REST(A1/2^ZEILE($1:$16)-1; 2))*10^ZEILE($1:$16)); WIEDERHOLEN("0"; 15))

Praktische Beispiele

  • Zahl 511 in Binär: Um 511 in binär darzustellen:

    =DEZINBIN(511; 10) ' Ergebnis: 111111111
  • Zahl 65535 in Binär: Um 65535 (maximale 16-stellige binäre Zahl) darzustellen:

    =DEZINBIN(65535; 16) ' Ergebnis: 1111111111111111

Tipps für Profis

  • Nutze die Funktion GANZZAHL und REST, um Dezimalzahlen in kleinere Teile zu zerlegen, wenn Du mit Zahlen arbeitest, die größer als 512 sind.

  • Teste Deine Formeln mit unterschiedlichen Zahlensystemen, um sicherzustellen, dass sie auch bei extremen Werten korrekt arbeiten.

  • Wenn Du häufig mit binären Zahlen arbeitest, erstell eine benutzerdefinierte Symbolleiste oder Makros, um den Prozess zu automatisieren.


FAQ: Häufige Fragen

1. Kann ich mit DEZINBIN auch negative Zahlen umwandeln?
Nein, die Funktion DEZINBIN funktioniert nur mit positiven Zahlen. Für negative Zahlen musst Du eine eigene VBA-Funktion verwenden.

2. Wie kann ich Dezimalzahlen in ein 32-Bit-Binärformat umwandeln?
Du kannst die Funktion DEZINBIN verwenden, beachte aber, dass Du die Eingabe auf 32 Stellen anpassen musst.

3. Was ist der Unterschied zwischen DEZINBIN und HEXINBIN?
DEZINBIN wandelt Dezimalzahlen in binäre Zahlen um, während HEXINBIN hexadezimale Zahlen in binäre Zahlen umwandelt.

4. Wie viele Stellen kann DEZINBIN maximal darstellen?
Die maximale Anzahl an Stellen für die Funktion DEZINBIN ist 10, wenn Du mit Dezimalzahlen arbeitest, und 16 für binäre Zahlen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige