Einzelnen Beitrag anzeigen

Codix32

Registriert seit: 23. Apr 2009
137 Beiträge
 
Delphi 2005 Personal
 
#3

AW: HI und LO liefern falsche Werte

  Alt 1. Jan 2015, 19:57
Nein, denn 9 * 256 = 2304 + 41 = 2345
Da habe ich wohl was falsch verstanden:
Habe diesen Code gefunden, der da was ganz anderes ausgibt...

Delphi-Quellcode:
Example code : Illustrate Ho and Lo functions
 var
   i : Integer;

 begin
  i := $2345; // $2345 hex : $23 hi byte, $45 lo byte
   ShowMessage(Format('Integer = $%x', [i]));
   ShowMessage(Format('Hi byte = $%x', [Hi(i)]));
   ShowMessage(Format('Lo byte = $%x', [Lo(i)]));
 end;
Show full unit code

Integer = $2345
Hi byte = $23
Lo byte = $45


Hm, die Hi-LO Functionen funktionieren da wohl auch nur mit Word (0..65535) und nicht mit Integer(...-3-2-1 0 1 2 3...)?

Gut für meinen Zweck mache ich mir einen:
Delphi-Quellcode:
Type
  TMyshrtInt = Record
     h,l : shortint
  end;
Eigentlich könnte man da auch statt 'ShortInt' Integer verwenden.
Delphi 2005 und die CPU nutzt doch die vollen 32Bit. Und Shortint bringt wohl keinen Schnelligkeitsvorteil.

Geändert von Codix32 ( 1. Jan 2015 um 20:03 Uhr)
  Mit Zitat antworten Zitat