HiWord
 
Gets the second 16bit word of the operand.

Syntax

#define HiWord( expr ) ((Cast(UInteger, expr) and &hFFFF0000) Shr 16)

Usage

result = HiWord( expr )

Parameters

expr
A numeric expression, converted to an UInteger value.

Return Value

Returns the value of the high 16bit word of the low 32bit dword of expr.

Description

This macro converts the numeric expression expr to an UInteger value, then expands to an UInteger representing the value of its second 16bit word - that is the most-significant (high) 16bit word of the least-significant (low) 32bit dword of expr.

Example

Dim N As UInteger

'Note there are 32 bits
N = &b10000000000000011111111111111111

Print "N is                                       "; N
Print "The binary representation of N is          "; Bin(N)
Print "The most significant word (MSW) of N is    "; HiWord(N)
Print "The least significant word (LSW) of N is   "; LoWord(N)
Print "The binary representation of the MSW is    "; Bin(HiWord(N))
Print "The binary representation of the LSW is    "; Bin(LoWord(N))

Sleep


The output would look like:
N Is                                       2147614719
The Binary representation of N Is          10000000000000011111111111111111
The most significant word (MSW) of N Is    32769
The least significant word (LSW) of N Is   65535
The Binary representation of the MSW Is    1000000000000001
The Binary representation of the LSW Is    1111111111111111

Dialect Differences

  • Not available in the -lang qb dialect unless referenced with the alias __HIWORD.

Differences from QB

  • New to FreeBASIC

See also