AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein 'unsigned 8bit' Floating Point -> 2x '4bit' Floating Point
Thema durchsuchen
Ansicht
Themen-Optionen

'unsigned 8bit' Floating Point -> 2x '4bit' Floating Point

Ein Thema von schty · begonnen am 5. Nov 2006 · letzter Beitrag vom 7. Nov 2006
Antwort Antwort
schty

Registriert seit: 13. Dez 2003
5 Beiträge
 
Delphi 6 Personal
 
#1

'unsigned 8bit' Floating Point -> 2x '4bit' Floating Poin

  Alt 5. Nov 2006, 20:22
Es ist nicht gerade schwierig ein 8bit unsigned Integer in 2x4bit (Nibbles) aufzuteilen, und das alles mit nur wenigen logischen AND und SHIFT Befehlen.

Aber nun kommt es: wie macht man folgendes im inline Assembler, anfangend mit einem 8bit unsigned Integer Wert 'gespeichert' in einem 32bit Floating Point (SSE):
1. Diese 8bit integer Wert herausfiltern und...
2. Aufteilen in zwei 4bit Werte (Nibbles)
3. Diese zwei 4bit Werte speichern in zwei 32bit Floating Points (SSE)
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: 'unsigned 8bit' Floating Point -> 2x '4bit' Floating

  Alt 7. Nov 2006, 00:38
Wenn du dir mal anschaust, wie Floats aufgebaut sind, wirst du feststellen, dass das unmöglich äquivalent übertragbar ist. In einem Float steht nämlich nicht einfach die Zahl zu einer anderen Basis, sondern stellt viel mehr eine Wertevorgabe, mit der eine CPU mit ein paar definierten mathematischen Schritten wieder eine Dezimalzahl herstellen kann.
Rein prinzipiell kannst du dir natürlich eine 32Bit Floatingpoint Zahl in ein Register schlabbern und zerhackstückeln, jedoch steht in den Einzelteilen dann nur noch Krams, der einzeln in keiner Weise Aussagekraft besitzt (vom Vorzeichenbit mal abgesehen, dass dank seiner Größe ja in jeder Struktur mit vollem Informationsgehalt platz findet ).


Edit: Yeek! Ich seh jetzt grad erst das "SSE" . Nun, das Zerlegen wirst du vermutlich ein einem normalen CPU Register machen müssen. SSE bietet eine ganze Reihe an Opcodes um Werte von/in diese zu kopieren, darunter auch Konvertierungen für Integer. Diese und diese Seite fand ich recht ansprechend, um mal danach zu wühlen. Aus dem Stehgreif kann ich allerdings keine fertige Lösung zauber. (Muss mal wieder mehr in diese Richtung machen *sigh*)
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
schty

Registriert seit: 13. Dez 2003
5 Beiträge
 
Delphi 6 Personal
 
#3

Re: 'unsigned 8bit' Floating Point -> 2x '4bit' Floating

  Alt 7. Nov 2006, 19:49
Schönen Dank, diese Links können doch hilfreich sein
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz