| | | |
|
| DRKB online - Быстрый способ обмена значений в 2х переменных. |
|
|
|
|
Быстрый способ обмена значений в 2х переменных.
delphi | procedure SwapVars1(var u, v; Size: Integer);
var
x: Pointer;
begin
GetMem(x, Size);
try
System.move(u, x^, Size);
System.move(v, u, Size);
System.move(x^, v, Size);
finally
FreeMem(x);
end;
end;
procedure SwapVars2(var Source, Dest; Size: Integer);
// By Mike Heydon, mheydon@eoh.co.za
begin
asm
push edi
push esi
mov esi,Source
mov edi,Dest
mov ecx,Size
cld
@1:
mov al,[edi]
xchg [esi],al
inc si
stosb
loop @1
pop esi
pop edi
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SwapVars1(X1, X2, SizeOf(Integer));
end; |
@Drkb::00074
Взято с сайта http://www.swissdelph...ndex.php
delphi | var
X1, X2: Byte;
begin
X1 := X2 xor X2;
X2 := X1 xor X2; // X2 = X1
X1 := X1 xor X2; // X1 = X2 |
Автор ___ALex___
http://forum.pascal.dax.ru
@Drkb::00075 |
|
| Количество статей: 4366 |
|
|
|
|
Статистика |
| Сегодня | Всего |
Посетителей | 5191 | 4100512 |
Запросов | 88104 | 395497670 |
Online |
Пользователей | 0 |
Гостей | 319 |
|
|
|