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

Xem chủ đề cũ hơn Xem chủ đề mới hơ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 : 25
Ngày đăng ký : 25/04/2008

http://diendanpascal.forumotion.com

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


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