Zahlensysteme Umrechnen in Excel?

5 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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:

Bild zum Beitrag

 - (Computer, Schule, PC)

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.

Woher ich das weiß:Studium / Ausbildung – Mathematik

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...


gfntom  21.09.2021, 09:12

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


Suboptimierer  21.09.2021, 09:46

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)

Anonym126113 
Beitragsersteller
 20.09.2021, 23:13

Aber genau den Befehl darf ich nicht benutzen

Anonym126113 
Beitragsersteller
 20.09.2021, 23:19
@Kalirobot

Ich denke nicht bin im info kurs der 9 Klasse und wir hatten dieses VBA noch nicht

Anonym126113 
Beitragsersteller
 20.09.2021, 23:27
@Kalirobot

Danke, die Formeln dort helfen mir schon weiter, allerdings weiß ich nicht wie ich diese in meinem Beispiel umsetzen soll