I am writing a interface using RS232 and PAC. The protocol requires a 2 Byte CRC value to be used on all coms I am using the following Procedure to calculate the CRC value procedure Update_CRC(Data: integer); const Poly = $A001; var I: Integer; Flag: Boolean; begin CRC := CRC xor Data; for I := 1 to 8 do begin Flag := (CRC and 1) <> 0; CRC := CRC shr 1; if Flag then CRC := CRC xor Poly; end; end; I use this procedure to pass each byte of the sent/recived commands through to transmit or validate the sting. Example command to Send #01#84 When each byte is passed throgh the crc procedure the result returned is is the decimal value of 33793. This equates to 8401 hex. my question is in two parts. i am looking for the easyist way to convert the decimal result to its hexidecimal value and then to the the hex to its ascii equivalent as a string that i can apped to the command strig to be trasmitted out the serial port. their has to be an easy way for this but it is just not apparant to me.