Чтение онлайн

на главную - закладки

Жанры

Советы по Delphi. Версия 1.0.6

Озеров Валентин

Шрифт:

if c > 9 then Inc(c, $37)

else Inc(c, $30);

Response[i + 1]:= char(c);

 end;{for}

end;

procedure HexStrToBytes(hHexStr: String; pbyteArray: Pointer);

{pbyteArray указывает на область памяти, хранящей результаты}

var

 i, j: WORD;

 tempPtr: PChar;

 twoDigits: String[2];

begin

 tempPtr:= pbyteArray;

 j:= 1;

 for i:= 1 to (Length(hHexStr) DIV 2) do begin

twoDigits:= Copy(hHexStr, j, 2); Inc(j, 2);

PByte(tempPtr)^:= StrToInt('$' + twoDigits); Inc(tempPtr);

 end;{for}

end;

end.

UNIT string16.

interface

{$IFNDEF Win32}

procedure SetLength(var S: string; Len: Integer);

procedure SetString(var Dst: string; Src: PChar; Len: Integer);

{$ENDIF}

implementation

{$IFNDEF Win32}

procedure SetLength(var S: string; Len: Integer);

begin

 if len > 255 then S[0]:= Chr(255)

 else S[0]:= Chr(Len)

end;

procedure SetString(var Dst: string; Src: PChar; Len: Integer);

begin

 if Len > 255 then Move(Src^, Dst[1], 255)

 else Move(Src^, Dst[1], Len);

 SetLength(Dst, Len);

end;

{$ENDIF}

end.

Преобразование

двоичного числа в десятичное

Может ли кто-нибудь дать мне идею простого преобразования двоичного кода (base2) в десятичный (base10)?

Решение 1

/////////////////////////////////////////////////////////////////////////

// преобразование 32-битного base2 в 32-битный base10 //

// максимальное число = 99 999 999, возвращает –1 при большем значении //

/////////////////////////////////////////////////////////////////////////

function base10(base2:integer) : integer; assembler;

asm

 cmp eax,100000000 //
проверка максимального значения

 jb @1 // значение в пределах допустимого

 mov eax,-1 // флаг ошибки

 jmp @exit // выход если –1

@1:

 push ebx // сохранение регистров

 push esi

 xor esi,esi // результат = 0

 mov ebx,10 // вычисление десятичного логарифма

 mov ecx,8 // преобразование по формуле 10^8-1

@2:

 mov edx,0 // удаление разницы

 div ebx // eax – целочисленное деление на 10, edx – остаток от деления на 10

 add esi,edx // результат = результат + разность[I]

 ror esi,4 // перемещение разряда

 loop @2 // цикл для всех 8 разрядов

 mov eax,esi // результат функции

 pop esi // восстанавление регистров

 pop ebx

@exit:

end;

Решение 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;

Решение 3

Следующая функция получает в качестве параметра Base (1..16) любую десятичную величину и возвращает результат в виде строки, содержащей точное значение BaseX. Вы можете использовать данный алгоритм для преобразования арабских чисел в римские (смотри ниже).

Поделиться:
Популярные книги

Адвокат Империи 3

Карелин Сергей Витальевич
3. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 3

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Дурная жена неверного дракона

Ганова Алиса
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дурная жена неверного дракона

Вонгозеро

Вагнер Яна
1. Вонгозеро
Детективы:
триллеры
9.19
рейтинг книги
Вонгозеро

Ведьма Вильхельма

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
8.67
рейтинг книги
Ведьма Вильхельма

Папина дочка

Рам Янка
4. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Папина дочка

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Как я строил магическую империю 7

Зубов Константин
7. Как я строил магическую империю
Фантастика:
попаданцы
постапокалипсис
аниме
фантастика: прочее
5.00
рейтинг книги
Как я строил магическую империю 7

Лучший из худший 3

Дашко Дмитрий
3. Лучший из худших
Фантастика:
городское фэнтези
попаданцы
аниме
6.00
рейтинг книги
Лучший из худший 3

Штурмовик из будущего 3

Политов Дмитрий Валерьевич
3. Небо в огне
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Штурмовик из будущего 3

Последний попаданец 2

Зубов Константин
2. Последний попаданец
Фантастика:
юмористическая фантастика
попаданцы
рпг
7.50
рейтинг книги
Последний попаданец 2

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Вдова на выданье

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Вдова на выданье