Để biểu diễn số nguyên cần ít nhất bao nhiêu byte

III. BIỂU DIỄN TH�NG TIN TR�N M�Y T�NH

1.Biểu diễn các ký tự

Một trong những chiêu thức để biểu diễn những ký tự trong máy tính là phong cách thiết kế một bộ mã. Ý nghĩa của cách phong cách thiết kế này là những ký tự khác nhau sẽ được đặc trưng bởi một nhóm bit duy nhất khác nhau, bằng cách này thông tin sẽ được mã hóa thành một chuỗi bit trong bộ nhớ hoặc ở những thiết bị tàng trữ. Tuy nhiên, sẽ có nhiều bộ mã khác nhau. Ðể xử lý yếu tố này, Viện Chuẩn Hóa Hoa Kỳ ( American National Standards Institute ) đã đưa ra bộ mã chuẩn trong tiếp xúc thông tin trên máy tính gọi là bộ mã ASCII ( American Standard Code for Information Interchage ) và đã trở thành chuẩn công nghiệp cho những nhà phân phối máy tính. Bộ mã này dùng 7 bit để biểu diễn những ký tự, tuy nhiên mỗi ký tự trong bảng mã ASCII vẫn chiếm hết một byte khi triển khai trong bộ nhớ máy tính, bit dư ra sẽ bị bỏ lỡ hoặc được dùng cho biểu diễn một cho ký tự đặc biệt quan trọng. Trong bảng mã ASCII sẽ gồm có những ký tự chữ hoa, thường, ký tự số, ký tự khoảng chừng trắng, …

Ví dụ

dãy bit sau là biểu diễn của chuỗi ký tự ” Hi Sue “

Figure03_001.jpg (29141 bytes)

Hiện nay bảng mã ASCII vẫn là bảng mã được sử dụng nhiều nhất. Một bảng mã khác cũng không kém phần được ưa chuộng là EBCDIC (Extended Binary Code Decimal Interchange Code) là bộ mã ở đó mỗi ký tự được biểu diễn với 8 bit, bộ mã này của công ty IBM.

2. Biểu diễn gi� trị của c�c con số

Mặc dù chiêu thức tàng trữ thông tin như thể sự mã hóa những ký tự bằng những dãy bit, nhưng nó có vẻ như không hiệu suất cao khi tàng trữ tài liệu thuần số. Chúng ta hãy xem tại sao điều này xảy ra ? Chúng ta muốn tàng trữ số 25, nếu dùng bảng mã ASCII để biểu diễn thì mỗi ký số sẽ cần đến một byte tàng trữ do đó ta cần tới 16 bit tàng trữ. Hơn thế nữa, so với những số lượng lớn hơn muốn tàng trữ ta phải cần phải dùng từ 16 bit trở lên. Một chiêu thức hiệu suất cao hơn để tàng trữ giá trị cho với tài liệu là số ở máy tính là dùng hệ nhị phân, giải pháp này dựa trên ví dụ sau :

Một đồng hồ đo kilomet của xe, khi xe còn mới thì đồng hồ chỉ ở mức 0000000

Figure03_002.jpg (10518 bytes)

Mỗi số 0 đặc trưng cho một vòng quay, vòng quay sẽ nhận lần lượt các con số 1, 2, 3, 4, 5, 6, 7, 8, 9. Khi xe bắt đầu chạy thì vòng quay bên phải nhất sẽ bắt thay đổi cho đến khi chỉ số ở đồng hồ là 00000009

Figure03_003.jpg (39239 bytes)

Vào thời gian tiếp theo vòng quay phải nhất sẽ đẩy vòng xoay kế lên một đơn vị chức năng, tác dụng là vòng quay phải nhất đã quay được một vòng và sẽ trở lại 0. Lúc đó chỉ số ở đồng hồ đeo tay như sau : 00000010

Figure03_004.jpg (17285 bytes)

Khi đó xe liên tục chạy và vòng quay phải nhất sẽ liên tục biến hóa cho đến 9 và sau đó sẽ đẩy vòng xoay kế lên 1, khi đó chỉ số đồng hồ đeo tay chuyển từ 00000019 thành 00000020Phương pháp đếm trên hệ nhị phân cũng giống như quy trình trên, mỗi vòng chỉ có 0 và 1 khi đó 0 sửa chữa thay thế cho 9. Nếu đồng hồ đeo tay kilomet dựa trên hệ đếm nhị phân thì chúng sẽ Open lần lượt như sau

00000000

00000001

00000010

00000011

00000100

00000101

00000110

Sự biến hóa chỉ số trên thực ra là quy trình đếm từ 0 đến 6, nếu đổi khác từ 00000011 thành 00000100 thì cũng giống như chỉ số đồng hồ đeo tay chuyển từ 00000099 thành 00000100. Nên nhớ rằng việc quy đổi từ 9 thành 0 ở đồng hồ đeo tay tương tự như cho quy đổi từ 1 thành 0 khi ở hệ nhị phân .Quay trở lại yếu tố biểu diễn giá trị số khi dùng hệ nhị phân, ta nhận thấy một byte có thể tàng trữ một số nguyên có giá trị trong khoảng chừng từ 0 đến 255 ( 00000000 đến 11111111 ), với 2 byte có thể tàng trữ một số nguyên có giá trị từ 0 đến 65535. Cách làm này sẽ làm tăng hiệu suất cao năng lực tàng trữ những số nguyên so với cách dùng một byte cho một chữ số trong bảng mã ASCII .Một nguyên do khác sâu xa hơn cho việc tàng trữ thông tin ở dạng số khi dùng hệ nhị phân hay hơn dùng bảng mã, đó là mạng lưới hệ thống nhị phân miêu tả đúng mực kỹ thuật tàng trữ dùng bit trong máy tính. Ngoài ra ta có thể sử dụng hệ nhị phân để biểu diễn những số nguyên âm với chiêu thức bù 2 ( twos complement notation ) hoặc dùng giải pháp dấu chấm động ( floating point notation ) để biểu diễn hỗn số. Tuỳ theo giá trị của số mà ta có chiêu thức biểu diể � n khác nhau. Ở đây ta có hai khái niệm là tràn số ( overflow ) đó là khi giá trị của số qua lớn vượt quá số lượng bit biểu diễn của chúng hoặc làm tròn ( round-off ) xảy ra khi phân số có giá trị bị làm tròn dẫn đến sai số .Các số biểu diễn ở hệ nhị phân sẽ là một chuỗi bit, ứng với mỗi vị trí bit được gán một trọng số. Các trọng số này được xác lập từ phải sang trái với những giá trị là 1, 2, 4, 8, … Với vị trí những bit tương ứng 0, 1, 2, 3, … Dựa theo qui luật : số sau sẽ bằng 2 lần số trước, ví dụ với biểu diễn nhị phân 100101 là biểu diễn nhị phân của 37 .

Figure_B1_002.jpg (34492 bytes)

Phương pháp quy đổi giữa hệ thập phân và nhị phân bạn đọc có thể tìm hiểu thêm ở phần 1. Sau đây tất cả chúng ta cùng khám phá những thao tác giải quyết và xử lý khác trên hệ nhị phân .3. Cộng nhị phânTrong hệ nhị phân thao tác cộng cũng giống như thao tác cộng trong hệ thập phân với 1 số ít qui tắc sau0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10Khi cộng vẫn triển khai cộng những cột từ phải sang trái, ứng với mỗi cột ta cộng 2 số theo qui tắc trên, nếu có nhớ thì cộng nhớ sang cột kế bên

Ví dụ :

cho 2 dãy bit

0

0

1

1

1010
+0

0

0

1

1011

Nhớ 1

0101
0

0

1

11010
+0

0

0

11011

Nhớ 1

10101
0

0

1

1

1010
+0

0

0

1

1011

Nhớ 1

010101
001

1

1010
+000

1

1011
01010101
001

1

1010
+000

1

1011
=01010101

Các phép toán khác ta cũng thực thi tựa như .

Khi nghiên cứu kỹ thuật biểu diễn các số thông qua biểu diễn số trong hệ nhị phân đại diện cho các bit, ta chỉ đề cập đến các số nguyên dương, còn các số âm thì sao? Chính điều này ta cần có một hệ có thể biểu diễn cho cả số âm và số dương. Các nhà toán học trong thời gian dài đã quan tâm đến hệ thống biểu diễn số, nhiều ý kiến đã được đưa ra, trong các ý kiến đó, có một số ý kiến rất phù hợp với khả năng thiết kế các mạch điện trong máy tính, và hầu hết các ý kiến này vẫn dựa trên hệ nhị phân nhưng có một số biến đổi đó là hệ nhị phân có dấu. Có ba cách biểu diễn một số âm ở hệ nhị phân có dấu đó là : phương pháp dấu lượng.

4. Phương pháp dấu lượng (sign – magnitude)Theo cách biểu diễn này, bit cực trái được dùng làm bit dấu ( 1 là dấu + và 0 là dấu – ) những bit còn lại biểu diễn độ lớn của số .

Ví dụ :

với mẩu là 4 bit thì những số biểu diễn như sau :

Mẩu bit

Giá trị được biểu diễn

1111

7

1110

6

1101

5

1100

4

1011

3

1010

2

1001

1

1000

0

0111

-1

0110

-2

0101

-3

0100

-4

0011

-5

0010

-6

0001

-7

0000

-8

Qui tắc 5

Phương pháp để biểu diễn 1 số ít âm về dạng nhị phân có dấu với mẩu K bit là lấy số cần biểu diễn cộng thêm 2K-1 sau đó biểu diễn chúng ở hệ nhị phân .Ví dụ :

với số + 5 trong mẩu 4 bit thì biểu diễn là 5 + 8 = 13 sẽ là 1101với số – 5 trong mẩu 4 bit thì biểu diễn là – 5 + 8 = 3 sẽ là 0011

Ngoài cách biểu diễn bằng dấu lượng những nhà toán học còn đưa ra 2 cách biểu diễn sau :

5. Phương pháp biểu diễn số bù 1 (ones complement)

Theo cách biểu diễn này vẫn dùng bit cực trái làm bit dấu nhưng với qui định có đổi khác là 0 cho số dương và 1 cho số âm. Ðể biểu diễn số n theo dạng bù 1 ta triển khai những thao tác sau :

Qui tắc 6 :

Biểu diễn dưới dạng nhị phân của trị tuyệt đối n theo mẩu k bit cố định và thắt chặt cho trước. Nếu n < 0 thì đổi 1 thành 0 và ngược lại trong dãy số nhị phân .Ví dụ :

với n = 5 dùng mẩu 4 bit thì biễ � u diễn theo chiêu thức bù 1 là 0101n = – 5 dùng mẩu 4 bit thì biễ � u diễn theo chiêu thức bù 1 là 1010với n = 6 dùng mẩu 4 bit thì biễ � u diễn theo giải pháp bù 1 là 0110n = – 6 dùng mẩu 4 bit thì biễ � u diễn theo chiêu thức bù 1 là 1001

nếu biểu diễn nhị phân của 6

0

110

thì biểu diễn số bù 1 của -6 sẽ là

1

001

6. Phương pháp biểu diễn số bù 2 ( twos complement )Theo cách biểu diễn này vẫn sử dụng bit cực trái làm bit dấu giống như bù 1, nhưng có 1 số ít độc lạ khi đổi sang hệ nhị phân có dấu, những buớc triển khai như sau :

Qui tắc 7 :

Biểu diễn dưới dạng nhị phân của trị tuyệt đối n theo mẩu k bit cố định và thắt chặt cho trước. Nếu n < 0 thì khởi đầu từ phải qua trái giữ nguyên những bit cho đến khi gặp bit có giá trị là 1 tiên phong, sau đó những bit tiếp theo bên trái bit 1 tiên phong đó đổi 1 thành 0 và ngược lại .Ví dụ :

cho n = – 6 thì biểu diễn nhị phân của trị tuyệt đối của n cho mẩu 4 bit là 0110 khi đó biểu diễn của số bù 2 cho – 6 là 1010

Biểu diễn số bù 2 qua mẩu 4 bit

Mẩu bit

Giá trị được biểu diễn

0111

7

0110

6

0101

5

0100

4

0011

3

0010

2

0001

1

0000

0

1111

-1

1110

-2

1101

-3

1100

-4

1011

-5

1010

-6

1001

-7

1000

-8

Thực chất số biểu diễn dưới dạng bù 2 là số biểu diễn ở bù 1 sau đó ta cộng thêm 1 .Ví dụ :

Số – 6 có biểu diễn bù 1 là 1001 nếu ta lấy số bù 1 này cộng thêm 1 thì hiệu quả là 1001 + 1 = 1010 đây chính là dạng bù 2

Hình vẽ sau sẽ minh hoạ biểu diễn số bù 2 cho số – 6 :

nếu biểu diễn nhị phân của 6

0

110

thì biểu diễn số bù 1 của -6 sẽ là

1

001
cộng thêm 1+1

thì biểu diễn số bù 2 của -6 sẽ là

=

1

010

7. Phép cộng khi số được biểu diễn ở bù 1 và bù 2

Qui tắc 8:

Ðối với số dạng bù 1 khi thực thi phép cộng ta vẫn triển khai như phép toán tương ứng trên hệ nhị phân, nếu ở 2 bit cực trái khi thực thi phép cộng mà phát sinh bit nhớ thì sẽ cộng nhớ vào hiệu quả .ví dụ 1 :

– 6 biểu diễn ở bù 1 với mẩu 4 bit là 10014 biểu diễn ở bù 1 với mẩu 4 bit là 0100Kết quả phép cộng ở dạng bù 1 là 1101 ( là biểu diễn của – 2 ở bù 1 )

-6

1

0

0

1

+

4

+

0

1

0

0

-2

1

1

0

1

– 2 ở bù 1

ví dụ 2 :

-6 biểu diễn ở bù 1 với mẩu 5 bit là 11001

– 4 biểu diễn ở bù 1 với mẩu 5 bit là 11011Kết quả phép cộng ở dạng bù 1 là 10100 và còn nhớ 1 khi cộng 2 bit cực trái khi đó hiệu quả sẽ là 10100 + 1 = 10101 là biểu diễn của số – 10 ở dạng bù 1 .

-6

1

1

0

0

1

+

-4

+

1

1

0

1

1

1

0

1

0

0

+

1

Nhớ 1
-10

1

0

1

0

1

– 10 ở bù 1

Qui tắc 9

Ðối với bù 2 ta vẫn triển khai như phép cộng nhị phân, nhưng nếu ở 2 bit cực trái phát sinh bit nhớ thì bỏ .ví dụ 1 :

– 6 biểu diễn ở bù 2 với mẩu 4 bit là 10104 biểu diễn ở bù 2 với mẩu 4 bit là 0100Kết quả phép cộng ở dạng bù 2 là 1110 ( là biểu diễn của – 2 ở bù 2 )

-6

1

0

1

0

+

4

+

0

1

0

0

1

1

1

0

– 2 ở bù 2

ví dụ 2 :

– 6 biểu diễn ở bù 2 với mẩu 5 bit là 11010- 4 biểu diễn ở bù 2 với mẩu 5 bit là 11100Kết quả phép cộng ở dạng bù � 2 là 10110 và còn nhớ 1 khi cộng 2 bit cực trái nhưng ta bỏ nhớ này và hiệu quả là 10110 là biểu diễn của – 10

-6

1

1

0

1

0

+

-4

+

1

1

1

0

0

1

0

1

1

0

– 10 ở bù 2 bỏ đi nhớ

8. Lỗi tràn sốTrong những ví dụ trên bạn đọc chắc cũng vướng mắc tại sao ở ví dụ 2 trong phép cộng số bù 2 ta lại dùng mẩu 5 bit chứ không là 4 bit ? Ý nghĩa của lỗi tràn số đã ra mắt ở những những phần trước, đó là hiện tượng kỳ lạ xảy ra khi số cần biểu diễn vượt quá số bit cho trước để biểu diễn nó .Ví dụ :

nếu ở ví dụ 2 ta dùng mẩu 4 bit cho biểu diễn bù 2 cho – 6 và – 4, khi đó bài toán được thực thi như sau :- 6 biểu diễn ở bù 2 với mẩu 4 bit là 1010- 4 biểu diễn ở bù 2 với mẩu 4 bit là 1100Kết quả phép cộng ở dạng bù 1 là 0110 là biểu diễn của + 6, do đó tác dụng bị sai .

Nguyên nhân là do ta lấy số lượng bit để biểu diễn quá ít nên xảy ra lỗi tràn số. Do đó người sử dụng máy tính phải lường trước được trường hợp này khi muốn tàng trữ tài liệu, để khắc phục ta tăng số lượng bit nhiều hơn thì sẽ không gây hiện tượng kỳ lạ tràn. Ví dụ với mẩu 32 bit thì giá trị dương lớn nhất là 2147483647 .

Tổng quát ta có số ở phép biểu diễn bù 1 và bù 2 thì giá trị dương lớn nhất cho phép khi dùng mẩu n bit là : 2n-1 -1 và giá trị âm nhỏ nhất là -2n-1

9. Biểu diễn hỗn số bằng hệ nhị phân

Ðể biểu diễn hỗn số bằng hệ nhị phân ta dùng dấu chấm cơ số ( radix point ) giống như cách biểu diễn số có phần thập phân trong hệ cơ số 10, khi đó số bên trái dấu chấm cơ số là biểu diễn nhị phân của phần nguyên của hỗn số và bên phải là biểu diễn nhị phân của phân số, vị trí bit bên phải tiên phong sau dấu chấm là biểu diễn cho số sau đó là, , … Với qui luật số sau sẽ nhỏ hơn 2 lần so với số trước. Các giá trị này gọi là trọng số của bit tương ứng với vị trí tính từ vị trí tiên phong bên phải của dấu chấm cơ số. Ðể đổi khác hỗn số ở hệ nhị phân sang hỗn số ở hệ thập phân, ta vẫn sử dụng cách triển khai như đổi số nguyên sang hệ thập phân cho những số nhị phân bên trái và bên phải dấu chấm nhưng với quan tâm những số nhị phân bên phải dấu chấm sẽ có trọng số là phân số khởi đầu từ và giảm 50% khi đi từ trái sang phảiVí dụ :

Cho hỗn số 5 thì sẽ biến đổi thành 101.101 và được biểu diễn theo lưu đồ sau :

Figure_B1_001.jpg (35193 bytes)

Phép cộng ở trên hỗn số biểu diễn dưới dạng nhị phân cũng được thực thi như phép cộng nhị phân cho số nguyên, chỉ có quan tâm là dấu chấm cơ số phải sắp thẳng hàng cho 2 số .Ví dụ :

1

0

.

0

1

1

là biểu diễn của 2 3/8
+

1

0

0

.

1

1

là biểu diễn của 4 3/4
=

1

1

1

.

0

0

1

là biểu diễn của 7 1/8

10.Các phép toán luận lýBa phép toán thường thì trong nhóm của những phép toán luận lý đó là AND, OR, và EXCLUSIVE OR � ( XOR ). Chúng tương tự như như phép cộng và trừ với hai toán hạng và trả ra một tác dụng duy nhất. ( Trái lại có một số ít phép toán mà giá trị trả về của nó sẽ cho ra 2 số khác dấu nhau như là phép rút căn bậc hai, ví dụ như 4 khi rút căn sẽ cho hai tác dụng là 2 và – 2 ). Bây giờ tất cả chúng ta sẽ xem qua một số ít phép toán như sau :a. Phép toán AND

Hình 2-6 cho ta một bảng những hiệu quả của phép toán AND với một bit duy nhất. Chú ý rằng hiệu quả là 1 chỉ khi cả hai bit đều là 1 .

1

1

0

0

AND

1

AND

0

AND

1

AND

0

Kết quả

1

Kết quả

0

Kết quả

0

Kết quả

0

Trái lại, với phép cộ � ng cho những toán hạng là những bit thì sẽ cho hiệu quả không giống như phép toán AND. Với hai dãy gồm nhiều bit là toán hạng cho phép toán AND, thì vẫn được vận dụng những qui tắc triển khai phép toán AND như trong ví dụ dướ đây, khi đó thì ta sẽ tách riêng ra từng cặp bit thành những cột ở mỗi dãy và triển khai qui tắc AND cho cặp bit đó .Ví dụ triển khai phép AND cho hai byte sau :

1 0 0 1 1 0 1 0

AND

1 0 0 1 1 0 1 0

Kết quả

1 0 0 0 1 0 0 0

Một trong những sử dụng chính của phép toán AND là thành phần 0 trong một dãy bit sẽ không bị tác động ảnh hưởng bởi những phần khác. Hãy xem một ví dụ, điều gì sẽ xảy ra nếu dãy bit 00001111 là toán hạng tiên phong của phép toán AND. Mặc dù ta không biết thành phần toán hạng hai, nhưng tất cả chúng ta vẫn suy ra được 4 bit bên trái nhất là những số 0 .Hơn thế nữa, bốn bit bên phải nhất là 4 bit cuối của toán hạng thứ hai, theo ví dụ ta có :

0 0 0 0 1 1 1 1

AND

0 0 0 0 1 0 1 0

Kết quả

0 0 0 0 1 0 1 0

Cách sử dụng phép toán AND trong ví dụ này được gọi là cách sử dụng mặt nạ ( masking ). Ở đây, toán hạng đầu được gọi là mặt nạ ( mask ), nó được sử dụng để xác lập phần của toán hạng còn lại sẽ ảnh hưởng tác động đến tác dụng. Trong trường hợp này, mặt nạ được sử dụng sẽ cho ra tác dụng là mỗi phần 4 bit của những toán hạng trong đó những số 0 với 4 bit đầu của toán hạng thứ nhất và 4 bit sau là phần của toán hạng thứ hai .Phép toán này thường được sử dụng trong phép kiểm tra bit là 1 hay 0. Ví dụ, một chuỗi gồm 52 bit, với mỗi bit là một đại diện thay mặt cho một lá bài, có thể được sử dụng để biễu diễn trạng thái những lá bài cho một người chơi bằng cách gán 1 cho 5 bit tương ứng với những lá bài và những bit còn lại là 0. Khi đó nếu muốn kiểm tra lá bài thứ 6 trong 52 lá bài này có thuộc về một người nào đó hay không, thì ta có thể sử dụng phép toán AND. Một ví dụ khác ta có 8 bit trong một ô nhớ của bộ nhớ chính, ta muốn kiểm tra bit thứ 3 trong nhóm bit cao có sống sót hay không ? Bằng cách sử dụng mặt nạ 00100000 và triển khai phép toán AND giữa dãy bit và mặt nạ. Nếu byte nhận được có giá trị là 0 thì bit thứ 3 trong phần cao không sống sót và ngược lại là sống sót. Do đó phép toán AND thường được sử dụng trong chương trình cùng với lệnh nhảy có điều kiện kèm theo. Ngoài ra ta có bit thứ 3 này là 1, nhưng ta muốn biến hóa nó thành 0 mà không tác động ảnh hưởng đến những bit khác, ta có thể AND với mặt nạ 11011111 và sau đó đưa hiệu quả trở lại dãy bit gốc .

b. Phép toán OR

1

1

0

0

OR

1

OR

0

OR

1

OR

0

Kết quả

1

Kết quả

1

Kết quả

1

Kết quả

0

Bây giờ tất cả chúng ta cùng khám phá phép toán OR. Các qui tắc như hình 2-7. Chú ý rằng tác dụng là 0 chỉ khi cả 2 bit toán hạng đều là 0. Một lần nữa những qui tắc cơ bản có thể được lan rộng ra đến những chuỗi những bit bằng cách dựa trên việc thực thi phép toán cho những cột độc lập, như đã trình diễn sau đây :

1 0 0 1 1 0 1 0

OR

1 1 0 0 1 0 0 1

1 1 0 1 0 0 1 1

Ở đây phép toán AND có thể được sử dụng để chép lại một phần của dãy bit và thêm vào 0 ở phần không chép lại. Còn so với phép toán OR thì có thể sử dụng để chép lại một phần của dãy bit, và đặt giá trị 1 vào những phần không chép lại. Trong phần này tất cả chúng ta một lần nữa sử dụng mặt nạ, nhưng thời gian này tất cả chúng ta xác lập những vị trí bit được chép lại 0 và sử dụng 1 để chỉ những vị trí không được chép lại. Ví dụ, thực thi phép toán OR với một byte có giá trị là 11110000 sau cho ta có được một tác dụng với những số 1 ở 4 bit cao và ở 4 bit còn lại là 4 bit thấp của toán hạng kia .Bài toán được trình diễn như sau :

1 1 1 1 0 0 0 0

OR

1 0 1 0 1 0 1 0

1 1 1 1 1 0 1 0

Từ đó ta thấy rằng phép toán AND và mặt nạ 11011111 có thể được sử dụng để buộc thành 0 ở bit thứ 3 của phần cao trong một dãy 8 bit, còn phép toán OR và mặt nạ 00100000 có thể buộc thành 1 ở vị trí đó .

c. Phép toán EXCLUSIVE OR ( XOR )

Các qui tắc cơ bản của phép toán XOR được trình diễn trong hình 2-8. Trong trường hợp để hiệu quả là 1, thì hai bit toán tử chỉ có đúng mực một bit là 1. Nghĩa là nếu một bit là 1 thì bit kia không được là 1, mới cho ra hiệu quả là 1. Ta có thể vận dụng những qui tắc này cho một dãy bit theo ví dụ như sau :

1 0 0 1 1 0 1 0

XOR

1 1 0 0 1 0 0 1

0 1 0 1 0 0 1 1

1

1

0

0

XOR

1

XOR

0

XOR

1

XOR

0

Kết quả

1

Kết quả

0

Kết quả

0

Kết quả

0

Sử dụng chính của phép toán này là lấy phần bù của một chuỗi bit. Ví dụ, để lấy phần bù của toán hạng thứ 2 ta triển khai như sau :

1 1 1 1 1 1 1 1

XOR

1 0 1 0 1 0 1 0

0 1 0 1 0 1 0 1

d. Các phép toán dịch chuyển và quay

Các phép toán thuộc lớp các phép toán như phép quay (rotation) và phép dịch chuyển (shift), đều có ý nghĩa biến đổi các bit trong một thanh ghi và thường được sử dụng để giải quyết các bài toán thực hiện trên bit. Ví dụ như biến đổi một byte theo một yêu cầu nào đó bằng cách sử dụng mặt nạ, hoặc thao tác trên phần định trị của các số biểu diễn ở dạng dấu chấm động. Những phép toán này được phân chia tùy theo hướng di chuyển của các dãy bit (sang trái hay sang phải).

Cho một byte gồm 8 bit, nếu ta triển khai phép toán SHIFT cho dãy bit của nó sang hướng trái hay phải thì bit tiên phong của byte ( là bit cao nhất nếu di dời sang phải, hay bit thấp nhất khi di dời sang trái ) sẽ bị chuyển đi, và bit ở đầu cuối của nó ( là bit cao nhất nếu di dời sang trái, hay bit thấp nhất khi di dời sang phải ) sẽ được đặt là 0 .Ví dụ cho một byte có giá trị là 10001110, khi SHIFT trái một lần sẽ là 00011100 hoặc SHIFT phải tác dụng là 01000111 .

Ðối với phép toán quay, cũng giống như phép SHIFT. Nhưng bit cuối sẽ được chuyển vào bit đầu tiên.

Ví dụ cho một byte có giá trị là 10001110, khi ta quay trái một bit thì hiệu quả sẽ là 00011101 ; quay phải một bit thì tác dụng sẽ là 01000111 .Phép toán SHIFT thường được sử dụng cho những phép nhân hay chia cho 2, so với SHIFT trái chính là nhân cho 2, và SHIFT phải là chia cho 2. Do đó phép toán này này ta gọi là phép chuyển số học ( arithmetic Shifts ) .

Mục lục bài viết

Video liên quan

Source: https://mix166.vn
Category: Thủ Thuật

Xổ số miền Bắc