Форум: "Начинающим";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
ВнизПомогите!!! Двоичное - в обычное Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c