ByteToHex Подскажите как использовать эту функцию или это процедура?
Заранее спасибо
С уважением Антон
Модератор: Модераторы
Logo писал(а):Вы имели ввиду IntToStr?
Это функция: IntToStr(255{целое число}, 2{количество возвращаемых символов})
Возвращает "FF"
IntToStr(255, 4) Возвратит "00FF"
Logo писал(а):Вы имели ввиду IntToStr?
Это функция: IntToStr(255{целое число}, 2{количество возвращаемых символов})
Возвращает "FF"
IntToStr(255, 4) Возвратит "00FF"
function BinToHex(const BinStr: string): string;
const BS: array[0..15] of string[4] =
('0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001',
'1010', '1011', '1100', '1101', '1110', '1111');
HS: array[0..15] of Char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F');
var s, h: string;
i: Integer;
Err: Boolean;
begin
Result := '';
s := BinStr;
if (s[Length(s)] = 'b') or (s[Length(s)] = 'B') then
Delete(s, Length(s), 1);
// дополнение строки нулями, пока ее длина не кратна 4
while (Length(s) mod 4) <> 0 do s := '0' + s;
while Length(s) > 0 do
begin
Err := True;
h := Copy(s, 1, 4);
Delete(s, 1, 4);
for i := 0 to 15 do
if h = BS[i] then
begin
Result := Result + HS[i];
Err := False;
break;
end;
if Err then
begin
Result := '00';
Exit;
end;
end;
end;
Михаил Крамер писал(а):Перевести числовой код символа в двоичную систему, что ли? Это что, должно быть как массив символов, или как? Чтой-то не понятно, что вам надо? Символы всегда вроде в двоичных кодах передаются.
function ByteToBin(c: Byte): String;
const BS: array[0..15] of string[4] =
('0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001',
'1010', '1011', '1100', '1101', '1110', '1111');
begin
ByteToBin:= BS[(c and $F0) shr 4] + BS[c and $0F];
end;
begin
Writeln(ByteToBin($f1));
Writeln(ByteToBin(Ord('A'));
end.
Вернуться в Обучение Free Pascal
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11