Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
function IntToHex(Num: Int64; Digits: Byte): String;
type
DataInt = Array[0..7] of Byte;
var
I:Byte;
Data: ^DataInt;
begin
Data := @Num;
Result := '';
for I := Trunc(Digits/2)-1 downto 0 do begin
if SizeOf(DataInt) < I then
Result := Result+'00'
else begin
case Data^[I] of
0: Result := Result+'00';
1: Result := Result+'01';
2: Result := Result+'02';
{ ........... }
253: Result := Result+'FD';
254: Result := Result+'FE';
255: Result := Result+'FF';
end;
end;
end;
end;
Давно писал функцию для перевода числа в 16-ричное представление.
Причина - нужно было отдельную функцию без лишнего.
Вот такой вот жестокий быдло код :))
а чому не так? (чи там байти якось переплутані? при вигрузці зі стеку вони в зворотньому подяку йдуть...)
[code=pascal]
function IntToHex(Num: Int64; Digits: Byte): String;
const
HexCharSet = '0123456789ABCDEF'
var
I: Integer;
begin
for I := Digits downto 0 do
Result := Result + HexCharSet[(Num shr I * 4) and $F];
end;[code]
function IntToHex(Num: Int64; Digits: Byte): String;
const
HexCharSet = '0123456789ABCDEF'
var
I: Integer;
begin
for I := Digits downto 0 do
Result := Result + HexCharSet[(Num shr I * 4) and $F];
end;
1) "Free Pascal (aka FPK Pascal) is a 32 and 64 bit professional Pascal compiler. It can target multiple processor architectures: Intel x86, AMD64/x86-64, PowerPC, PowerPC64, SPARC, and ARM"
2) "The endianness of the 32-bit SPARC V8 architecture is purely big-endian."
> Мне кажется, я знаю ответ.
Поведайте нам его, пожалуйста, о великий и могучий guest!
> 6 мая 2009 стало достигнуто соглашение о продаже Borland Software за $75 млн британской компании Micro Focus, специализирующейся на поддержке крупных корпоративных систем на языке COBOL.
в том смысле, что мешает идею кода, который генерирует все это, использовать здесь?
Страсть к байтоебству и преждевременной оптимизации.
Хреновый ты кулхацкер.
Надо так:
а вообще, это все делается через format(format('%%.%dx', [Digits]), [Num]);
[code=pascal]
function IntToHex(Num: Int64; Digits: Byte): String;
const
HexCharSet = '0123456789ABCDEF'
var
I: Integer;
begin
for I := Digits downto 0 do
Result := Result + HexCharSet[(Num shr I * 4) and $F];
end;[code]
[code]begin[/code=pascal]
Trunc(Digits/2) - операция с флоатом, очень сочетается с прочим байтоебством и оптимизациями.
> Pascal
> big-endian или little-endian текущая платформа
Мне кажется, я знаю ответ.
2) "The endianness of the 32-bit SPARC V8 architecture is purely big-endian."
> Мне кажется, я знаю ответ.
Поведайте нам его, пожалуйста, о великий и могучий guest!
R.I.P.
это geust - хилый закос под настоящего гвеста. Клацни по нику,
Это Глот с планеты Катрук. Вот настоящий доктор Верховцев...
Дёшевы нынче обезьяны
А раньше можно было...
Страйко, ты зачем сбрил усы выпилил Уникод?
ОБСЛУЖУ В ЖЕНСКОМ БЕЛЬЕ КАВКАЗЦЕВ ТАДЖИКОВ УЗБЕКОВ НА СТРОЙКАХ РЫНКАХ СМС 89119017975 ИЩУ СУТЕНЕРА КАВКАЗЦА АЗИАТА МОЖНО ВЛАСТНУЮ ЖЕНЩИНУ 89119017975