Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.17;
Скачать: CL | DM;

Вниз

Помогите!!! Двоичное - в обычное   Найти похожие ветки 

 
TIF ©   (2006-11-27 12:22) [0]

Помогите преобразовать двоичное число в десятичное, шестнадцатиричное и наоборот. Срочно нужно.

Заранее спасибо.


 
alex810 ©   (2006-11-27 12:25) [1]

Функция FMTBCDToCurr( const BCD :FMTBcd; var Curr: Currency ): Boolean;
-----------------------------------------------------------------------------Модуль: DBCommon

Описание
Функция конвертирует двоичный код десятичного значения (BCD) в соответствующее значение типа Currency. Исходное значение передается в параметре BCD, результат записывается в переменную Curr. При успешном выполнении функция возвращает True, а иначе - False.


 
alex810 ©   (2006-11-27 12:27) [2]

function IntToBin(Value: LongInt; Size: Integer): string;
var
 i: Integer;
begin
 Result := "";
 for i := Size downto 0 do
 begin
   if Value and (1 shl i) <> 0 then
   begin
     Result := Result + "1";
   end
   else
   begin
     Result := Result + "0";
   end;
 end;
end;

function BinToInt(Value: string): LongInt;
var
 i, Size: Integer;
begin
 Result := 0;
 Size := Length(Value);
 for i := Size downto 0 do
 begin
   if Copy(Value, i, 1) = "1" then
   begin
     Result := Result + (1 shl i);
   end;
 end;
end;


 
alex810 ©   (2006-11-27 12:28) [3]

Преобразование десятичного числа в шестнадцатиричное  
--------------------------------------------------------------------------------

function dec2hex(value: dword): string[8];
const
 hexdigit = "0123456789ABCDEF";
begin
 while value <> 0 do
 begin
   dec2hex := hexdigit[succ(value and $F)];
   value := value shr 4;
 end;
 if dec2hex = "" then dec2hex := "0";
end;


 
alex810 ©   (2006-11-27 12:29) [4]

Для преобразования числа в двоичную запись удобно использовать функции shl и and. Эта функция преобразует число в строку из единиц и нулей. Количество цифр определяется параметром Digits.

function IntToBin(Value: integer; Digits: integer): string;
var
 i: integer;
begin
 result := "";
 for i := 0 to Digits - 1 do
   if Value and (1 shl i) > 0 then
     result := "1" + result
   else
     result := "0" + result;
end;



Вот пример использования этой функции:

procedure TForm1.Edit1Change(Sender: TObject);
begin
 Form1.Caption := IntToBin(StrToIntDef(Edit1.Text, 0), 128);
end;


 
TIF ©   (2006-11-27 12:29) [5]

а стандартных нет? типа IntToBin? А?


 
alex810 ©   (2006-11-27 12:31) [6]


> Функция FMTBCDToCurr( const BCD :FMTBcd; var Curr: Currency
> ): Boolean;

Стандартная


 
alex810 ©   (2006-11-27 12:33) [7]

Стандартная преобразование шестнадцатиричной из десятичной
Функция IntToHex( Value: Integer; Digits: Integer ): string;
--------------------------------------------------------------------------------

Модуль: SysUtils

Описание
Функция преобразовывает десятичное целое число Value в шестнадцатеричный вид и возвращает его строковое представление. Параметр Digits определяет, сколько символов (шестнадцатеричных знаков) должна содержать результирующая строка.

Пример
var
  S1, S2: string;
  X: integer;
begin
  X:= 4321;
  S1:= IntTostr(X);
  S2:= IntToHex(X, 8);       { S := "000010E1" }
  MessageDlg( "Число в десятичном формате: "+ S1+#13+ "Число в шестнадцатеричном формате: "+ S2, mtInformation, [mbOk], 0);
end;


--------------------------------------------------------------------------------



Страницы: 1 вся ветка

Текущий архив: 2006.12.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
9-1140617584
Sour Smile
2006-02-22 17:13
2006.12.17
Подскажите математическую (физическую) модель цепочки


11-1141342016
Dimaxx
2006-03-03 02:26
2006.12.17
Может я не так делаю?...


3-1160402974
YuRock
2006-10-09 18:09
2006.12.17
Отмена долгого запроса


3-1160464542
Krants
2006-10-10 11:15
2006.12.17
ADOConnection, избавиться ошибки при не подключении


15-1164366898
WhiteBarin
2006-11-24 14:14
2006.12.17
Как сделать Setup одним файлом в InstalShield 8.0?