Forum: Compiler & IDEs float invertieren


von Inverter (Gast)


Lesenswert?

Hallo!

Wenn ich ein Ganzzahl (char, long, int) binär invertieren möchte geht 
das ganz einfach, indem ich ein Tilte ~ vorne anstelle.
Bei float wirft der Compiler jedoch eine Fehlermeldung.

Wie invertiere ich ein float Wert?

Danke für die Unterstützung!

Gruß
Inverter

von Kalli L. (knl)


Lesenswert?

Hallo
was willst du damit bezwecken?

von Peter D. (peda)


Lesenswert?

Inverter schrieb:
> Wie invertiere ich ein float Wert?

Wozu?


Peter

von Peter (Gast)


Lesenswert?

Einen Float Wert binär zu invertieren macht keinen Sinn, Du müsstes 
schon mal erklären was Du erreichen willst.

Aber Du kannst den Float Wert negieren, einfach mit einem (-) Minus 
Zeichen!

von Inverter (Gast)


Lesenswert?

Ich rede nicht von negieren, sondern invertieren. Das der Wert, der 
dahinter steht absoluter murks ist, ist mir bekannt. Das ganze hat einen 
anderen Zweck, den ich hier nicht näher erörtern kann.

Mach das jetzt über eine byte-Weise Invertierung unter Zuhilfenahme 
eines Byte-Pointers auf den ich die Adresse des float-Wertes caste.

Gibt es eine andere Alternative?

von Rico (Gast)


Lesenswert?

wenn du weißt wieviele kommastellen du hast, mit 1000 oder was auch 
immer wieviel kommastellen du hast -> dann kommst du auf ganzzahligen 
wert. dann speicherst du den wert als integer oder long integer ab. dann 
invertieren. dann wieder durch 1000 dividieren und in float speichern. 
wäre eine möglichkeit, jedoch kommt da nur müll raus denke ich^^

von Peter D. (peda)


Lesenswert?

Inverter schrieb:
> Das ganze hat einen
> anderen Zweck, den ich hier nicht näher erörtern kann.

Aha, wieder mal ne super geheime Verschlüsselung.

Inverter schrieb:
> Mach das jetzt über eine byte-Weise Invertierung unter Zuhilfenahme
> eines Byte-Pointers auf den ich die Adresse des float-Wertes caste.

Ein float hat aber 4 Byte, also auf (uint32_t*) casten.

Manche CPUs machen aber eine Exception, wenn ein float einen ungültigen 
Wert enthält.

Besser wäre daher eine Union aus einem float zum Rechen und einem 
uint32_t für Deine Verschlüsselung.


Peter

von Inverter (Gast)


Lesenswert?

Das mit dem union ist ein guter Tipp.

@Rico:
Danke für deine Antwort. - Aber ich glaube du hast die Fragestellung 
nicht richtig verstanden.... ;)

von U.R. Schmitt (Gast)


Lesenswert?

Eine float binär zu invertieren macht so überheupt keinen Sinn. Den 
einzigen potentiellen Sinn hat Peter genannt, irgendeine 
Verschlüsselung.
Wenn man wirklich eigene Verschlüsselungen bauen will (Macht vom Thema 
Sicherheit wenig Sinn), dann sollte man die Float auch sauber in einen 
Byte Stream konvertieren und den dann verschlüsseln. Dito eine saubere 
Rückkonvertierung vom Stream in den Float.

von Inverter (Gast)


Lesenswert?

Byte Stream => Meiner Lösung mit byte-Pointer und sequentieller 
byteweisen Invertierung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.