Zahlensysteme Umrechnen in Excel?
Hallo, ich bräuchte dringend hilfe in Excel. Ich schreibe morgen eine Info Arbeit und hab das Thema noch nicht gut drauf.Wir sollen z.B. eine HEX Zahl in eine BIN Zahl umwandeln, dürfen allerdings nicht den Befehl HEXINBIN benutzen und müssen alles manuell ausrechnen.
Wenn ich etwas dazu auf yt oder google suche werden mir immer nur lösungen mit dem Befehl angezeigt.
So müsste das Aussehen:
Über eine Lösung währe ich sehr Dankbar.
5 Antworten
Ich habe dir etwas gebaut was eine HEX Zahl in eine Dezimalzahl umwandeln kann. Es sind zwischen 1 und 3 Hex Zeichen möglich. In der Spalte B müssen alle Zahlen mit '1 und '2 und '3.... eingeben werden:
Bei HexInBin hast du das Problem, dass du erstmal die Buchstaben in Zahlenwerte umrechnen musst. Das ist nicht so ganz trivial.
Im ersten Schritt musst du jede Stelle der Zeichenkette in eine Zahl umwandeln, mit der du rechnen kannst.
Beispiel für das erste Zeichen (Formel in B4):
=CODE(TEIL(Hex;1;1))-48-(CODE(TEIL(Hex;1;1))>64)*7
Anschließend teilst du 4 mal jeden dieser Zahlenwerte durch 2. Der Rest der Division stellt die nächste Stelle von vorne gesehen dar.
=REST(GANZZAHL(GANZZAHL(GANZZAHL(B4/2)/2)/2);2)&REST(GANZZAHL(GANZZAHL(B4/2)/2);2)&REST(GANZZAHL(B4/2);2)&REST(B4;2)
Mit mehr Hilfszellen für die Divisionen würdest du dir diese Verschachtelung ersparen.
Für das erste Zeichen ergibt sich, wenn man B4 immer wieder ersetzt zusammengefasst folgende Monsterformel:
=REST(GANZZAHL(GANZZAHL(GANZZAHL((CODE(TEIL(Hex;1;1))-48-(CODE(TEIL(Hex;1;1))>64)*7)/2)/2)/2);2)&REST(GANZZAHL(GANZZAHL((CODE(TEIL(Hex;1;1))-48-(CODE(TEIL(Hex;1;1))>64)*7)/2)/2);2)&REST(GANZZAHL((CODE(TEIL(Hex;1;1))-48-(CODE(TEIL(Hex;1;1))>64)*7)/2);2)&REST(CODE(TEIL(Hex;1;1))-48-(CODE(TEIL(Hex;1;1))>64)*7;2)
Für das zweite Ziechen müsste anstelle TEIL(Hex;1;1) TEIL(Hex(2;1) verwendet werden.
Ich vermute stark, dass wenn das eine Hausaufgabe ist, ihr Hilfszellen benutzen sollt.
Wie soll die Ausgabe erfolgen: als String oder als Zahl?
Bis zu wie großen Zahlen soll das funktionieren?
Das ganze in einer Formel (wird mühsam) oder in VBA?
DIe Berechnung erfolgt in einer Zelle oder sind Hilfszellen erlaubt?
An und für sich ist es ein iterativer Prozess, für den sich VBA besser eigenen würde.
die Funktion REST ist dabei aber sicher hilfreich...
Ich sehe grad: es geht nur um Konvertierung von HEX nach BIN?
Dann ist dies mit mehreren ineinander verschachtelten "WECHSELN"-Funktionen (16 Stück) schnell erledigt. Leider nicht sehr elegant...
Nun,
du nimmst die immer eine einzelne Hex-Ziffer, fängst bei letzten Stelle an,
und wandelst diese in ein 4er Komplement um. Und hier entweder 1 oder 0.
HEX -> Dual
Reihenfolge: 8 ; 4; 2; 1;
So wäre die:
8 hex in dual 1000
9 hex in dual 1001
A hex in dual 1010
B hex in dual 1011
C hex in dual 1100
D hex in dual 1101
E hex in dual 1110
F hex in dual 1111 (die höchste Zahl die eine einzelne Ziffer im Hex darstellen kann).
Und danach schreibst du einfach alle 4er Komplemente hintereinander, lässt aber Platz zwischen den Komplementen.
Hansi
Gute Idee. Man kann sich eine Übersetzungstabelle anlegen.
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
Auf diese greift man dann mit dem SVERWEIS zu.
=SVERWEIS(TEIL(Hex;1;1);Uebersetzungstabelle;2)
https://support.microsoft.com/de-de/office/dezinhex-funktion-6344ee8b-b6b5-4c6a-a672-f64666704619
https://support.microsoft.com/de-de/office/dezinbin-funktion-0f63dd0e-5d1a-42d8-b511-5bf5c6d43838
Schau dir bei solchen Fragen mal die Microsoft Dokumentation an.
Ich denke nicht bin im info kurs der 9 Klasse und wir hatten dieses VBA noch nicht
Danke, die Formeln dort helfen mir schon weiter, allerdings weiß ich nicht wie ich diese in meinem Beispiel umsetzen soll
Aber genau den Befehl darf ich nicht benutzen