Diễn Đàn Pascal
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

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

Go down

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

Bài gửi by Admin 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.
Admin
Admin
Quản trị viên
Quản trị viên

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

https://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