Excel Formel für Umwandlung in IEEE 754
hey community. Ich habe ein Problem. Ich möchte/muss in Excel eine Formel erstellen womit man dezimale Bzw rationale Zahlen in eine Binäre Gleitkommazahl umwandeln nach dem single precision ieee754 format. Kann mir jemand helfen wie ich die Formeln struckturieren muss?
Vielen Dank:)
2 Antworten
es gibt in xls die Fkt Dezinbin(Zahl), sie funktioniert aber nur bis 511 und nimmt nur den ganzzahligen Teil. Da ich weder die IEE-Norm kenne noch weiß, was es diesbzgl mit dem Gleitkomma auf sich hat, kann ich Dir inhaltlich nicht weiterhelfen. Nur noch soviel: in LibreOffice (und vermutlich OpenOffice) gibt es die Funktion Basis(Zahl,Basis, Mindestlänge), die Zahlen bis ~2^47 auswertet (für RGB in xls bräuchte man 2^24).
ich nehme an, dass Du große Zahlen successive durch 2^(n*
8) teilen musst, so dass immer der Ganzzahl-Teil ausgewertet wird, den Du dann von der Zahl abziehen musst, um an die nächsten Stellen zu kommen.
Bei Dezimalzahlen musst Du vermutlich erst mal mit 2^(m*
8) multiplizieren musst und später die Stellen entsprechend verschhieben?
besser, weil universeller verwendbar, ist -anstatt der Letzten- die Formel:
=2^(SPALTEN($A:B)-2)
$A ist dabei die Spalte der zu analysierenden Zahl, B die Position der Formel.
Lässt sich beliebig nach rechts -und, vor allem, nach Einfügen neuer Spalten- nach links kopieren.
Mir fiel spontan dazu ein:
Jede Zelle = eine Binärstelle, und dann die Zellen per Wenn-dann-sonst in eine Ergebniszelle addieren lassen.
Sinngemäß z.B.: Wenn "Stelle 2" = Wert1 dann ERGEBNISFELDdez +2, sonst ERGEBNISFELDdez +0
je höher die Binärstellen, desto größer logischerweise der dezimale Wert halt 1,2,4,8,16,32,64,128 usw.
falls noch aktuell, eine Lösung für Ganzzahlen:
Die Zahl stehe in einem xl-sheet in A2
in B1:F1 stehen die Zahlen: 1, 2, 4, 8, 16,
in F2 die Formel:
=WENN($A2>=F1;1;0)
in E2 die Formel:
=WENN($A2-SUMMEWENN(F2:$F2;1;F1:$F1)>=E1;1;0)
die letzte Formel kann nach links bis B2 kopiert werden
Spalten zwischen A und B einzufügen geht (und nur dort!), vorher können die Zweierpotenzen durch die Formel:
=2^(SPALTE($F:$F)-SPALTEN(F:$F)-1)
dargestellt werden, sie passen sich dann automatisch an.
Hilft Dir das weiter?