Convert BinToHex

 



Function BinToHex ( Binar : String ) : String ;

Const

   ABCDEF         : Array[ 0..15 ] Of String =

      ( '0000' , '0001' , '0010' , '0011' , '0100' , '0101' , '0110' , '0111' ,

      '1000' , '1001' , '1010' , '1011' , '1100' , '1101' , '1110' , '1111' ) ;

   HEX         : Array[ 0..15 ] Of char =

      ( '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' ) ;

Var

   i , n       : integer ;

   sTemp       : String ;

   sNumber     : String ;

Begin

   Result := '' ;

   sTemp := Binar + Copy ( '000' , 1 , Length ( Binar ) Mod 4 ) ;

   For i := 0 To ( Length ( Binar ) Shr 2 ) - 1 Do

   Begin

      sNumber := Copy ( sTemp , ( i Shl 2 ) + 1 , 4 ) ;

      n := 8 ;

      While ( sNumber <> ABCDEF[ n ] ) Do

         If sNumber < ABCDEF[ n ] Then

            Dec ( n )

         Else

            Inc ( n ) ;

      Result := Result + HEX[ n ] ;

   End ;

End ;

 

            Example :

       

                caption := BintoHex ( '1000111001001011' ) ;

 

Back Home Foward