|
| 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é
| |
|
|