log von 16 bit Wert

Gast #483380
Lesenswert?
• ▲
▼
Hallo Armin,

ich weiss ja nicht, wie gut deine mathematischen Fähigkeiten sind. Eine 
Potenzreihenentwicklung in Ganzzahlarithmetik wäre möglich. Schau mal 
hier
http://de.wikipedia.org/wiki/Logarithmus
dort steht alles Notwendige drin. Ich würde mittels Basisumrechnung den 
Logarithmus zur Basis 2 berechnen. Über das Produktgesetz musst du 
eigentlich nur den Logarithmus für Zahlen zwischen 0..2 berechnen, und 
das geht recht gut mit der Potenzreihe.
Ich habe das Vorgehen nur knapp angedeutet, aber wenn es dich 
interessiert, kann ich es genauer erklären.

Gruß
Gerd
Gast #483699
Lesenswert?
• ▲
▼
Hallo, Armin
Wenn Dir eine Auflösung von 16 Werten genügt, schlage ich folgendes vor:
Der 2-er Logarithmus einer 16 Bit Zahl ist ein Wert zwischen 0 und 15, 
nämlich genau die Position des linkesten 1-Bits.
Das sollte auch in Assembler recht einfach sein.

z.B. 10000000 00000000 -> ld=15
     00000000 00111000 -> ld=5


lg
Luigi
Gast #484153
Lesenswert?
• ▲
▼
@Armin Zeitler

>Ich moechte insgesamt 70 Stufen haben, mal sehen, wie sich das am Besten
>machen laesst.

Eine Mischung aus Luigi Rossis Ansatz und der Decodierung der 
verbleibenden Mantisse. Sprich, nachdem du die erste '1' gefunden hast 
und die Position in eine 4 Bit Zahl gewandelt hast (Exponent), nimmst du 
die nächsten 2 Bit als Mantisse. Dein LD ist dann Mantisse + 4x 
Exponent. Eigentlich nur Bitschieben. Zu unverständlich? Zwei Beispiele.

1.)

0x00101100xxxxxxxx
    |^^
    |Mantisse = 1
    |
    erste '1' an Position 13

LD = 1+ 13x4 = 53

2.)
0x00011100xxxxxxxx
     |^^
     |Mantisse = 3
     |
     erste '1' an Position 12

LD = 3 + 12 x 4 = 51

Ist quasi eine INT to FLOAT Konverierung. Schau dir mal die A-Law 
Kodierung von Tefephondaten an.

http://en.wikipedia.org/wiki/A-law

Die Beschriebung ist ein wenig kryptisch, aber als Ausgangspunkt 
brauchbar.

MfG
Falk
Gast #486484
Lesenswert?
• ▲
▼
Hallo Falk!

Danke fuer Deine Antwort.

Mir ist nicht ganz klar, wie ich dabei die Genauigkeit eventuell noch 
erhoehen kann. Muss ich den Exponenten dann mit einem anderen Faktor als 
4 gewichten?
Danke schon mal im Voraus,
Gast #486898
Lesenswert?
• ▲
▼
@Armin

>Mir ist nicht ganz klar, wie ich dabei die Genauigkeit eventuell noch
>erhoehen kann. Muss ich den Exponenten dann mit einem anderen Faktor als
>4 gewichten?

Ja. Du kannst den Exponenten mit 8 wichten und 3 Bit Mantisse verwenden, 
oder mit 16 und 4 Bit Mantisse, oder . . . etc.

MfG
Falk

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.