[Back to STRINGS SWAG index] [Back to Main SWAG index] [Original]

    {
    From: GREG ESTABROOKS
    Subj: Writing hexes
    Is there a quick and easy way to convert an integer to a hex number?
    example, if I have an integer num1:=32;  is there a way to print "20h
    screen?
    }

    CONST
         HexList :ARRAY[0..15] OF CHAR ='0123456789ABCDEF';

    FUNCTION HiWord( Long :LONGINT ) :WORD; ASSEMBLER;
                          { Routine to return high word of a LongInt.       }
    ASM
      Mov AX,Long.WORD[2]              { Move High word into AX.            }
    END;

    FUNCTION LoWord( Long :LONGINT ) :WORD; ASSEMBLER;
                          { Routine to return low word of a LongInt.        }
    ASM
      Mov AX,Long.WORD[0]              { Move low word into AX.             }
    END;

    FUNCTION BHex( V :BYTE ) :STRING;
    BEGIN
      BHex := HexList[V Shr 4] + HexList[V Mod 16];
    END;

    FUNCTION WHex( V :WORD ) :STRING;
    BEGIN
      WHex := Bhex(Hi(V)) + BHex(Lo(V));
    END;

    FUNCTION LHex( Long :LONGINT ) :STRING;
    BEGIN
      LHex := WHex(HiWord(Long))+WHex(LoWord(Long));
    END;

[Back to STRINGS SWAG index] [Back to Main SWAG index] [Original]