Тема: Функция
Показать сообщение отдельно
  #1  
Старый 29.03.2012, 20:34
AnderoN AnderoN вне форума
Прохожий
 
Регистрация: 18.02.2011
Сообщения: 31
Репутация: 10
По умолчанию Функция

Добрый вечер, у меня есть функция, которая переводит из двоичной (типа интеджер) в шестнадцатиричную (строковую) систему счисления
вот код этой функции

Код:
FUNCTION DEC2HEX(DEC: LONGINT): STRING;   {из двоичной (целочисленного типа) в шестнадцатиричную (строкового типа)}
CONST
HEXDigts: STRING[16] = '0123456789ABCDEF';
VAR
HEX : STRING;
I, J: LONGINT;
BEGIN
  IF DEC = 0 THEN HEX := '0'
  ELSE
    BEGIN
      HEX := '';
      I := 0;
      WHILE (1 SHL ((I + 1) * 4)) <=DEC DO I := I + 1;
      { 16^N = 2^(N * 4) }
      { (1 SHL ((I + 1) * 4)) = 16^(I + 1) }
      FOR J := 0 TO I DO
        BEGIN
          HEX := HEX + HEXDigts[(DEC SHR ((I - J) * 4)) + 1];
          { (DEC SHR ((I - J) * 4)) = DEC DIV 16^(I - J) }
          DEC := DEC AND ((1 SHL ((I - J) * 4)) - 1);
          { DEC AND ((1 SHL ((I - J) * 4)) - 1) = DEC MOD 16^(I - J) }
        END;
    END;
  DEC2HEX := HEX;
END;

мне нужна такая же функция, только чтобы перевод осуществлялся не из типа integer, а из типа real. Помогите пожалуйста, а то моего образования программиста не хватает для создания такой функции.
Ответить с цитированием