/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Hvad betyder LoWord/HiWord ?
Fra : SpookiePower


Dato : 29-10-02 19:36

Jeg er itvivl om hvad subj. betyder. Når jeg kigger i Delphi's hjælp
kan jeg læse dette -

The HIWORD macro retrieves the high-order word from the given 32-bit value.
The LOWORD macro retrieves the low-order word from the given 32-bit value.

Jeg forstår ikke hvad det betyder.



 
 
René Jensen (29-10-2002)
Kommentar
Fra : René Jensen


Dato : 29-10-02 21:12

SpookiePower wrote:
> Jeg er itvivl om hvad subj. betyder. Når jeg kigger i Delphi's hjælp
> kan jeg læse dette -
>
> The HIWORD macro retrieves the high-order word from the given 32-bit value.
> The LOWORD macro retrieves the low-order word from the given 32-bit value.
>
> Jeg forstår ikke hvad det betyder.

En 32-bit datatype såsom Delphi's Integer type, kan deles op i to 16-bit
datatyper (Word). HiWord returnere således den højeste del en 32-bit
datatype, og tilsvarende vil LoWord returnere den laveste del.
F.eks. kan du oprette en 32-bit variabel og tildele den en værdi f.eks.
98304 og ved at benytte HiWord og LoWord vil du således få henholdsvis
32367 og 65535 tilbage.

--
Med venlig hilsen,
René Jensen


René Allan Larsen (30-10-2002)
Kommentar
Fra : René Allan Larsen


Dato : 30-10-02 00:46

In article <3DBEEB76.7050109@notvalidemail.com>, René Jensen wrote:
> SpookiePower wrote:
>
[problem med forståelsen af HIWORD/LOWORD]
>
> En 32-bit datatype såsom Delphi's Integer type, kan deles op i to 16-bit
> datatyper (Word). HiWord returnere således den højeste del en 32-bit
> datatype, og tilsvarende vil LoWord returnere den laveste del.

Fuldkommen korrekt, men så sprænger snoren:

> F.eks. kan du oprette en 32-bit variabel og tildele den en værdi f.eks.
> 98304 og ved at benytte HiWord og LoWord vil du således få henholdsvis
> 32367 og 65535 tilbage.

Forkert, da _32367_ * 65536 + _65535_ giver 2121269247 og *ikke* 98304.

Hvis vi bruger dit eksempel med 98304 får vi:

HIWORD(98304) giver 1
LOWORD(98304) giver 32768

og da 1 * 65536 + 32768 giver 98304, kan vi være sikre på at vi har regnet
rigtigt.

Det er måske nemmere at forstå med hexadecimale værdier. Hvis vi bruger det
samme eksempel med $18000 (=98304) får vi:

HIWORD($18000) giver $1
LOWORD($18000) giver $8000

MVH, René


Søg
Reklame
Statistik
Spørgsmål : 177483
Tips : 31964
Nyheder : 719565
Indlæg : 6408394
Brugere : 218884

Månedens bedste
Årets bedste
Sidste års bedste