cách tráo đổi giá trị hai biến

Go down

cách tráo đổi giá trị hai biến

Bài gửi by Admin on 1/1/2011, 11:26 am

tráo đổi hai giá trị hai số là công việc hầu như phải có trong sắp xếp. hôm nay mình xin trình bày một vài cách trao đổi giá trị 2 biến

cho trước : var a,b:integer;

1 : dùng biến tạm, cách này thì cơ bản, dễ hiểu.

Code:
var temp:integer;
temp:=a;
a:=b;
b:=temp;

2 : dùng phép toán - và +

Code:
a:=a-b;
b:=b+a;
a:=b-a;

3 : dùng phép xor

Code:
a:=a xor b;
b:=b xor a;
a:=a xor b;

bảng chân trị của phép xor : nếu hai bit giống nhau thì trả về 0, ngược lại trả về 1.

A
B
A XOR B
1
1
0
1
0
1
0
1
1
0
0
0
VD về việc hoán đổi bằng XOR , a=1 và b=2

A=1
0
0
0
1
B=2
0
0
1
0
sau khi thực hiện : a:=a xor b; , lúc này a=3 và b=2

A=3
0
0
1
1
B=2
0
0
1
0
sau khi thực hiện b:=b xor a; , lúc này a=3 và b=1

A=3
0
0
1
1
B=1
0
0
0
1
sau khi thực hiện a:=a xor b; , lúc này a=2 và b=1;

A=2
0
0
1
0
B=1
0
0
0
1
như vậy, sau 3 bước xor, a và ba đã đổi giá trị cho nhau.
avatar
Admin
Quản trị viên
Quản trị viên

Nam Ngày sinh : 18/01/1992
Tuổi : 26
Ngày đăng ký : 25/04/2008

http://diendanpascal.forumvi.com

Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết