AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein BCD Wert Umwandeln in Double oder Extended
Thema durchsuchen
Ansicht
Themen-Optionen

BCD Wert Umwandeln in Double oder Extended

Ein Thema von SimStar001 · begonnen am 5. Aug 2009 · letzter Beitrag vom 5. Aug 2009
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

Re: BCD Wert Umwandeln in Double oder Extended

  Alt 5. Aug 2009, 15:30
Hallo Marco,

im Prinzip sollte das so gehen:

x'12 34 56 78' das wären 4 Byte mit bcd-Ziffern
entsprechend
Delphi-Quellcode:
 
bcdarray = array [1..4] of byte;
ergebnis = cardinal;
 
ergebnis:= bcdarray[4] and $f;
ergebnis:=ergebnis+((bcdarray[4] shr 4) * 10);
ergebnis:=ergebnis+( bcdarray[3] and $f)* 100);
ergebnis:=ergebnis+((bcdarray[3] shr 4) * 1000);
ergebnis:=ergebnis+( bcdarray[2] and $f)* 10000);
ergebnis:=ergebnis+((bcdarray[2] shr 4) * 100000);
ergebnis:=ergebnis+( bcdarray[1] and $f)* 1000000);
ergebnis:=ergebnis+((bcdarray[1] shr 4) *10000000);
Da ich nur 4 Byte große BCDs kenne hab ich das mal als Beispiel genommen.
U16 deutet natürlich auf 16 Bit =2Byte hin und dann kannst Du Dir die Hälfte sparen.

Gruß
K-H

[edit] Ich hab den real-Datentyp übersehen, aber daß ist im Prinzip das Gleiche nur daß man durch 10/100... teilt ist
  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 14:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz