AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Aus einem Word das High und Low Byte extrahieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aus einem Word das High und Low Byte extrahieren

Ein Thema von DelphiManiac · begonnen am 16. Jan 2007 · letzter Beitrag vom 16. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Aus einem Word das High und Low Byte extrahieren

  Alt 16. Jan 2007, 13:34
Hallo ich habe folgendes Problem,

ich habe ein Word:
Delphi-Quellcode:
..
var
 einWord:Word;
 HighByte:Byte;
 LowByte:Byte;
begin
 einWord:=$AAFF;
...
 HighByte:= GiveMeHighByte(einWord); // ich will auf das Highbyte (hier $AA)
 LowByte:= GiveMeLowByte(einWord); // und das Lowbyte hier($FF) zurückgeliefert bekommen
...
Gibt es hier für eine Delphi Funktion ??
Oder muss ich über die Hex (String)-Umwandlung gehen???

Danke schonmal im Vorraus.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Aus einem Word das High und Low Byte extrahieren

  Alt 16. Jan 2007, 13:36
Es gibt die Hi und Lo-Funktionen, geht aber auch selber ganz leicht:

Delphi-Quellcode:
hibyte:=myword shr 8;
lobyte:=myword and $FF;
Ein Word sieht ja so aus:

Code:
hh hh hh hh ll ll ll ll
Wenn du das jetzt um 8 nach rechts shiftest, siehts so aus:

Code:
00 00 00 00 hh hh hh hh
Und bei and $FF siehts so aus:

Code:
00 00 00 00 ll ll ll ll
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#3

Re: Aus einem Word das High und Low Byte extrahieren

  Alt 16. Jan 2007, 13:38
gibts dafuer nicht die Lo("wert") und Hi("wert") anweisungen ?

richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Aus einem Word das High und Low Byte extrahieren

  Alt 16. Jan 2007, 13:38
Nein, Low/High geben den Maximal- und Minimalwert für einen Typen zurück.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Aus einem Word das High und Low Byte extrahieren

  Alt 16. Jan 2007, 13:40
viele Wege wführen nach Rom:
Delphi-Quellcode:
highword:=wert div 65536;
lowword:=wert mod 65536;
Edit:
Delphi-Quellcode:
highbyte:=lowword div 256;
lowbyte:=lowword mod 256;
Oder noch ganz anders:
Delphi-Quellcode:
asm
  xor eax,eax
  mov eax,dword ptr wert
  mov lowword, ax
  mov highbyte, ah
  mov lowbyte, al
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#6

Re: Aus einem Word das High und Low Byte extrahieren

  Alt 16. Jan 2007, 13:44
Hey danke sirus,

ja hatte es erst mit High() u. Low() probiert,

hatte die Funktion auch schonmal angewendet, wusste nur nicht mehr wie sie heißt...

Jetzt weiß ich es Hi u. Lo. heißt... danke.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Aus einem Word das High und Low Byte extrahieren

  Alt 16. Jan 2007, 14:40
@Sirius: Die ersten beiden Methoden sind viel umständlicher und langsamer, die letzte ist wirklich unnötig kompliziert. Inline-Assembler ist ne tolle Sache, aber man kann es auch übertreiben.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Aus einem Word das High und Low Byte extrahieren

  Alt 16. Jan 2007, 14:43
man kann sich auch einfach einen record der gleichen größe erstellen, das ganze auf den Recordtyp casten und dann entsprechend auf die Werte zugreifen. Oder man nimmt die Speicheradresse interpretiert diese als PByte und addiert halt das eine Byte dazu um auf das nächste Byte zu gelangen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Aus einem Word das High und Low Byte extrahieren

  Alt 16. Jan 2007, 14:48
...wobei man aber beachten muss, dass wenn x die Adresse ist, das Lo-Byte bei x und das Hi-Byte bei x+1 liegt.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Phantom1

Registriert seit: 20. Jun 2003
282 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Aus einem Word das High und Low Byte extrahieren

  Alt 16. Jan 2007, 14:54
Zitat von SirThornberry:
man kann sich auch einfach einen record der gleichen größe erstellen, das ganze auf den Recordtyp casten und dann entsprechend auf die Werte zugreifen. Oder man nimmt die Speicheradresse interpretiert diese als PByte und addiert halt das eine Byte dazu um auf das nächste Byte zu gelangen.
Ich glaube es gibt schon ein TWordRec, kann aber im moment nicht nachschauen.

mfg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:13 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