23
Số âm trong máy tính Số âm trong máy tính Trong Trong toán học toán học , các số âm (bất kể thuộc , các số âm (bất kể thuộc hệ cơ số hệ cơ số nào) đều được biểu diễn bằng nào) đều được biểu diễn bằng cách thông thường là đặt trước số dương cách thông thường là đặt trước số dương tương ứng một dấu "−" (trừ). Ví dụ: với tương ứng một dấu "−" (trừ). Ví dụ: với hệ thập phân, số nguyên âm năm được biểu hệ thập phân, số nguyên âm năm được biểu diễn là −5. Tuy nhiên, trong diễn là −5. Tuy nhiên, trong máy tính máy tính , , khi mọi ký hiệu, con số, ... đều được khi mọi ký hiệu, con số, ... đều được biểu diễn dưới biểu diễn dưới hệ nhị phân hệ nhị phân thông qua hai thông qua hai chữ số 0 và 1 thì mọi chuyện lại trở nên chữ số 0 và 1 thì mọi chuyện lại trở nên phức tạp hơn. phức tạp hơn. Có nhiều cách được sử dụng để biểu diễn Có nhiều cách được sử dụng để biểu diễn số âm trong máy tính. Bài này chỉ giới số âm trong máy tính. Bài này chỉ giới thiệu bốn phương pháp chủ yếu nhất, đó thiệu bốn phương pháp chủ yếu nhất, đó là: phương pháp dấu lượng ( là: phương pháp dấu lượng ( sign-and- sign-and- magnitude magnitude ), ), bù 1 bù 1 , , bù 2 bù 2 và số quá và số quá N N ( ( excess- excess-

Số âm trong máy tính

  • Upload
    ansel

  • View
    63

  • Download
    1

Embed Size (px)

DESCRIPTION

Số âm trong máy tính. - PowerPoint PPT Presentation

Citation preview

Page 1: Số âm trong máy tính

Số âm trong máy tínhSố âm trong máy tínhTrong Trong toán họctoán học, các số âm (bất kể thuộc , các số âm (bất kể thuộc hệ cơ sốhệ cơ số nào) đều nào) đều được biểu diễn bằng cách thông thường là đặt trước số được biểu diễn bằng cách thông thường là đặt trước số dương tương ứng một dấu "−" (trừ). Ví dụ: với hệ thập phân, dương tương ứng một dấu "−" (trừ). Ví dụ: với hệ thập phân, số nguyên âm năm được biểu diễn là −5. Tuy nhiên, trong số nguyên âm năm được biểu diễn là −5. Tuy nhiên, trong máy tínhmáy tính, khi mọi ký hiệu, con số, ... đều được biểu diễn , khi mọi ký hiệu, con số, ... đều được biểu diễn dưới dưới hệ nhị phânhệ nhị phân thông qua hai chữ số 0 và 1 thì mọi chuyện thông qua hai chữ số 0 và 1 thì mọi chuyện lại trở nên phức tạp hơn.lại trở nên phức tạp hơn.Có nhiều cách được sử dụng để biểu diễn số âm trong máy Có nhiều cách được sử dụng để biểu diễn số âm trong máy tính. Bài này chỉ giới thiệu bốn phương pháp chủ yếu nhất, tính. Bài này chỉ giới thiệu bốn phương pháp chủ yếu nhất, đó là: phương pháp dấu lượng (đó là: phương pháp dấu lượng (sign-and-magnitudesign-and-magnitude), ), bù 1bù 1, , bù 2bù 2 và số quá và số quá NN ( (excess-Nexcess-N).).Các máy tính hiện nay hầu hết đều sử dụng phương pháp Các máy tính hiện nay hầu hết đều sử dụng phương pháp biểu diễn số bù 2. Tuy nhiên, trong vài tình huống, các biểu diễn số bù 2. Tuy nhiên, trong vài tình huống, các phương pháp khác vẫn có thể được sử dụng.phương pháp khác vẫn có thể được sử dụng.

Page 2: Số âm trong máy tính

Dấu lượngDấu lượng Phương pháp dấu lượng dùng Phương pháp dấu lượng dùng bit cực tráibit cực trái làm làm bit dấubit dấu ( (sign sign

bitbit) – tức đại diện cho dấu của số – theo quy ước: nếu bit dấu ) – tức đại diện cho dấu của số – theo quy ước: nếu bit dấu là 0 thì số là số dương (0 tương đương với dấu "+"), ngược lại, là 0 thì số là số dương (0 tương đương với dấu "+"), ngược lại, nếu nó là 1 thì số là số âm (1 tương đương với dấu "−"). Các nếu nó là 1 thì số là số âm (1 tương đương với dấu "−"). Các bit còn lại được dùng để biểu diễn độ lớn của số (hay bit còn lại được dùng để biểu diễn độ lớn của số (hay giá trị tuyệt đốigiá trị tuyệt đối –  – absolute valueabsolute value – của số). – của số).

Theo phương pháp này, một byte 8 bit sẽ có 7 bit (trừ đi bit Theo phương pháp này, một byte 8 bit sẽ có 7 bit (trừ đi bit dấu) được dùng để biểu diễn cho các số có giá trị từ 0000000 dấu) được dùng để biểu diễn cho các số có giá trị từ 0000000 (0) đến 1111111 (127). Khi sử dụng bit dấu, ý nghĩa của 7 bit (0) đến 1111111 (127). Khi sử dụng bit dấu, ý nghĩa của 7 bit trên sẽ thay đổi, và ta có thể biểu diễn các số từ −127 đến trên sẽ thay đổi, và ta có thể biểu diễn các số từ −127 đến +127. Phương pháp này làm cho số âm lẫn trị tuyệt đối của nó +127. Phương pháp này làm cho số âm lẫn trị tuyệt đối của nó (như −5 với +5) đều được biểu diễn theo cùng một cách ở 7 bit (như −5 với +5) đều được biểu diễn theo cùng một cách ở 7 bit biểu diễn độ lớn. Trong phương pháp dấu lượng, số 0 có thể biểu diễn độ lớn. Trong phương pháp dấu lượng, số 0 có thể được biểu diễn ở hai dạng, đó là 00000000 (+0) và 10000000 được biểu diễn ở hai dạng, đó là 00000000 (+0) và 10000000 (−0).(−0).

Page 3: Số âm trong máy tính

Dấu lượng –Ví dụDấu lượng –Ví dụ Ví dụ: giả sử mẫu 8 bit, khi sử dụng phương pháp dấu lượng, Ví dụ: giả sử mẫu 8 bit, khi sử dụng phương pháp dấu lượng,

số 5 được biểu diễn sang hệ nhị phân là: 00000101, còn số −5 số 5 được biểu diễn sang hệ nhị phân là: 00000101, còn số −5 là 10000101.là 10000101.

So sánh với cách biểu diễn số âm mà ta thường sử dụng, ta So sánh với cách biểu diễn số âm mà ta thường sử dụng, ta thấy phương pháp dấu lượng có nhiều điểm tương đồng. Trong thấy phương pháp dấu lượng có nhiều điểm tương đồng. Trong hệ thập phân, khi muốn biểu diễn số có dấu, ta đặt dấu cần hệ thập phân, khi muốn biểu diễn số có dấu, ta đặt dấu cần biểu diễn ngay trước giá trị tuyệt đối của số. Phương pháp dấu biểu diễn ngay trước giá trị tuyệt đối của số. Phương pháp dấu lượng cũng đặt dấu ngay trước giá trị tuyệt đối của số, chỉ có lượng cũng đặt dấu ngay trước giá trị tuyệt đối của số, chỉ có khác ở chỗ thay dấu "+" bằng "0" và "−" bằng "1". Có lẽ vì sự khác ở chỗ thay dấu "+" bằng "0" và "−" bằng "1". Có lẽ vì sự tương đồng này, một vài máy tính thế hệ đầu tiên (như tương đồng này, một vài máy tính thế hệ đầu tiên (như IBM 7090IBM 7090) đã sử dụng phương pháp dấu lượng khi biểu diễn ) đã sử dụng phương pháp dấu lượng khi biểu diễn số âm.số âm.

Page 4: Số âm trong máy tính

Phương pháp bù 1Phương pháp bù 1 Phương pháp bù 1 biểu diễn số âm theo cách sau:Phương pháp bù 1 biểu diễn số âm theo cách sau: Thứ nhất, bit dấu là 0 nếu số là số dương, và 1 nếu số là số âm. Thứ nhất, bit dấu là 0 nếu số là số dương, và 1 nếu số là số âm. Thứ hai, sử dụng Thứ hai, sử dụng toán tử thao tác bittoán tử thao tác bit (bitwise) (bitwise) NOTNOT để đảo tất cả để đảo tất cả

các bit của số nhị phân dương (dĩ nhiên không tính bit dấu) để các bit của số nhị phân dương (dĩ nhiên không tính bit dấu) để biểu diễn số âm tương ứng. biểu diễn số âm tương ứng.

Như vậy, phương pháp bù 1 hoàn toàn giống như phương pháp Như vậy, phương pháp bù 1 hoàn toàn giống như phương pháp dấu lượng, duy chỉ khác ở cách biểu diễn độ lớn của số.dấu lượng, duy chỉ khác ở cách biểu diễn độ lớn của số.

Ví dụ: dạng bù 1 của 00101011 (43) là 11010100(−43) (Ví dụ: dạng bù 1 của 00101011 (43) là 11010100(−43) (xem xem bài chính về bù 1bài chính về bù 1 để biết cách biểu diễn số thập phân sang nhị để biết cách biểu diễn số thập phân sang nhị phân bằng phương pháp bù 1phân bằng phương pháp bù 1).).

Giống phương pháp dấu lượng, một byte 8 bit áp dụng phương Giống phương pháp dấu lượng, một byte 8 bit áp dụng phương pháp bù 1 cũng có thể biểu diễn các số từ −127 đến +127 (chú ý: pháp bù 1 cũng có thể biểu diễn các số từ −127 đến +127 (chú ý: đã mất đi một bit dùng làm bit dấu). Bù 1 cũng có hai dạng biểu đã mất đi một bit dùng làm bit dấu). Bù 1 cũng có hai dạng biểu diễn cho số 0, bao gồm: 00000000 (+0) và 11111111 (−0) (mẫu diễn cho số 0, bao gồm: 00000000 (+0) và 11111111 (−0) (mẫu 8 bit).8 bit).

Page 5: Số âm trong máy tính

Bù 1 ( tt)Bù 1 ( tt)

Khi thực hiện phép cộng giữa hai số biểu diễn theo Khi thực hiện phép cộng giữa hai số biểu diễn theo phương pháp bù 1, ta cũng thực hiện theo quy tắc phương pháp bù 1, ta cũng thực hiện theo quy tắc cộng nhị phân thông thường, tuy nhiên, sau khi đã cộng nhị phân thông thường, tuy nhiên, sau khi đã thực hiện xong, nếu còn phát sinh bit nhớ thì phải tiếp thực hiện xong, nếu còn phát sinh bit nhớ thì phải tiếp tục cộng bit nhớ này vào kết quả vừa thu được. Về tục cộng bit nhớ này vào kết quả vừa thu được. Về vấn đề này, xin xem thêm ở vấn đề này, xin xem thêm ở bài chính về bù 1bài chính về bù 1..

Phương pháp biểu diễn số bù 1 được sử dụng rộng rãi Phương pháp biểu diễn số bù 1 được sử dụng rộng rãi trong các thế hệ máy tính cũ, điển hình là các dòng trong các thế hệ máy tính cũ, điển hình là các dòng máy máy PDP-1PDP-1 và và UNIVAC 1100/2200UNIVAC 1100/2200..

Page 6: Số âm trong máy tính

Bù 1 (tt)Bù 1 (tt) Bù 1Bù 1 ( (tiếng Anhtiếng Anh: : one's complementone's complement) là một số trong hệ ) là một số trong hệ nhị phânnhị phân mà nó mà nó

chính là chính là bù cơ số trừ 1bù cơ số trừ 1 ( (radix-minus-1 complementradix-minus-1 complement) của một số khác. Một ) của một số khác. Một số bù 1 có thể có được do đảo tất cả các số bù 1 có thể có được do đảo tất cả các bitbit có trong số nhị phân (đổi 1 có trong số nhị phân (đổi 1 thành 0 và ngược lại).thành 0 và ngược lại).

Bên cạnh phương pháp Bên cạnh phương pháp bù 2bù 2, bù 1 cũng thường được sử dụng để biểu diễn , bù 1 cũng thường được sử dụng để biểu diễn số âmsố âm trong trong máy tínhmáy tính. Theo phương pháp này, bit cực trái (là bit nằm bên . Theo phương pháp này, bit cực trái (là bit nằm bên trái cùng của byte) được sử dụng làm bit dấu (trái cùng của byte) được sử dụng làm bit dấu (sign bitsign bit - là bit tượng trưng - là bit tượng trưng cho dấu của số) với quy ước: nếu bit dấu là 0 thì số là số dương, còn nếu cho dấu của số) với quy ước: nếu bit dấu là 0 thì số là số dương, còn nếu nó là 1 thì số là nó là 1 thì số là số âmsố âm. Ngoài bit dấu này ra, các bit còn lại được dùng để . Ngoài bit dấu này ra, các bit còn lại được dùng để diểu diễn độ lớn của số.diểu diễn độ lớn của số.

Ví dụ: số −5 được biểu diễn trong máy tính theo phương pháp bù 1 như Ví dụ: số −5 được biểu diễn trong máy tính theo phương pháp bù 1 như sau (với mẫu 8 bit): đầu tiên, xác định số 5 được biểu diễn trong máy tính: sau (với mẫu 8 bit): đầu tiên, xác định số 5 được biểu diễn trong máy tính: 0000 0101. Tiếp theo, đảo tất cả các bit có trong số 5: kết quả sau khi đảo: 0000 0101. Tiếp theo, đảo tất cả các bit có trong số 5: kết quả sau khi đảo: 1111 1010. Vì là biểu diễn số âm nên bit bên trái cùng luôn giữ là 1.1111 1010. Vì là biểu diễn số âm nên bit bên trái cùng luôn giữ là 1.

Vậy với phương pháp bù 1, số −5 được biểu diễn trong máy tính như sau: Vậy với phương pháp bù 1, số −5 được biểu diễn trong máy tính như sau: 1111 1010.1111 1010.

Page 7: Số âm trong máy tính

Bù 1 (tt)Bù 1 (tt)

Khi thực hiện phép tính cộng với số âm biểu Khi thực hiện phép tính cộng với số âm biểu diễn theo phương pháp bù 2, ta thực hiện như diễn theo phương pháp bù 2, ta thực hiện như phép cộng nhị phânphép cộng nhị phân bình thường. Trong trường bình thường. Trong trường hợp khi đã thực hiện phép cộng đến bit cực hợp khi đã thực hiện phép cộng đến bit cực trái mà vẫn phát sinh trái mà vẫn phát sinh bit nhớbit nhớ thì ta cộng tiếp thì ta cộng tiếp bit nhớ này vào kết quả vừa nhận được.bit nhớ này vào kết quả vừa nhận được.

Ví dụ:Ví dụ: 1. Cộng hai số thập phân −5 với 2 (mẫu 8 bit):1. Cộng hai số thập phân −5 với 2 (mẫu 8 bit):

Page 8: Số âm trong máy tính

Ví dụVí dụ

1111 1010 (số bù 1 của −5) 1111 1010 (số bù 1 của −5) + 0000 0010 (số 2 ở hệ nhị phân) + 0000 0010 (số 2 ở hệ nhị phân)

=========== =========== 1111 1100 (số bù 1 của −3) 1111 1100 (số bù 1 của −3)

Page 9: Số âm trong máy tính

Công bù với 8 bitsCông bù với 8 bits

2. Cộng hai số thập phân −5 với −7 (mẫu 8 bit): 2. Cộng hai số thập phân −5 với −7 (mẫu 8 bit):

1111 1010 (số bù 1 của −5) 1111 1010 (số bù 1 của −5) + 1111 1000 (số bù 1 của −7)+ 1111 1000 (số bù 1 của −7) =========== =========== 1111 0010 (còn nhớ 1) 1111 0010 (còn nhớ 1) + 1 (cộng tiếp với bit nhớ)+ 1 (cộng tiếp với bit nhớ) =========== =========== 1111 0011 (số bù 1 của −12) 1111 0011 (số bù 1 của −12)

Page 10: Số âm trong máy tính

Ví dụVí dụ

Ta thấy: khi cộng hai bit cực trái của hai số Ta thấy: khi cộng hai bit cực trái của hai số 1111 1010 và 1111 1000, ta được kết quả là 1111 1010 và 1111 1000, ta được kết quả là 1111 0011 và còn nhớ 1, do đó, ta tiếp tục 1111 0011 và còn nhớ 1, do đó, ta tiếp tục cộng bit nhớ vào kết quả vừa nhận được để ra cộng bit nhớ vào kết quả vừa nhận được để ra kết quả cuối cùng kết quả cuối cùng

Page 11: Số âm trong máy tính

Bù 1 và tràn sốBù 1 và tràn số

Xét trường hợp ta đang có hai số âm −5 và −6 Xét trường hợp ta đang có hai số âm −5 và −6 ở hệ thập phân. Biểu diễn nhị phân bằng ở hệ thập phân. Biểu diễn nhị phân bằng phương pháp bù 1 với phương pháp bù 1 với mẫu 4 bitmẫu 4 bit của hai số của hai số trên lần lượt là 1010 và 1001. Giả sử, bây giờ, trên lần lượt là 1010 và 1001. Giả sử, bây giờ, ta cần cộng hai số này.ta cần cộng hai số này.

Ta thực hiện phép cộng:Ta thực hiện phép cộng:

Page 12: Số âm trong máy tính

Bù 1 và tràn số (tt)Bù 1 và tràn số (tt)

1010 (số bù 1 của −5) 1010 (số bù 1 của −5) + 1001 (số bù 1 của −6) + 1001 (số bù 1 của −6) ====== ====== 0011 (còn nhớ 1) 0011 (còn nhớ 1) + 1+ 1 ====== ====== 0100 0100 Ta thấy, kết quả nhận được là 0100. Nếu đổi ra hệ thập phân, Ta thấy, kết quả nhận được là 0100. Nếu đổi ra hệ thập phân,

đây là số nguyên dương 4 chứ không phải −11 như mong đợi. đây là số nguyên dương 4 chứ không phải −11 như mong đợi. Vấn đề như trên được gọi là tràn số. Nó xảy ra khi ta lấy số Vấn đề như trên được gọi là tràn số. Nó xảy ra khi ta lấy số lượng bit để biểu diễn quá ít (như trong ví dụ trên là mẫu 4 lượng bit để biểu diễn quá ít (như trong ví dụ trên là mẫu 4 bit). bit).

Page 13: Số âm trong máy tính

Bù 2Bù 2 Trong phương pháp bù 2, các số âm được biểu diễn giống như Trong phương pháp bù 2, các số âm được biểu diễn giống như

phương pháp bù 1, tuy nhiên, phải cộng thêm 1 vào kết quả (ở phương pháp bù 1, tuy nhiên, phải cộng thêm 1 vào kết quả (ở hệ nhị phân).hệ nhị phân).

Ví dụ: số −5 được biểu diễn sang hệ nhị phân (xét mẫu 8 bit) Ví dụ: số −5 được biểu diễn sang hệ nhị phân (xét mẫu 8 bit) sử dụng phương pháp bù 1 là 11111010. Để biểu diễn theo sử dụng phương pháp bù 1 là 11111010. Để biểu diễn theo phương pháp bù 2, ta cộng thêm 1 vào số nhị phân ở bù 1, tức phương pháp bù 2, ta cộng thêm 1 vào số nhị phân ở bù 1, tức cộng 1 cho 11111010: 11111010 + 1 = 11111011. Vậy cộng 1 cho 11111010: 11111010 + 1 = 11111011. Vậy 11111011 là biểu diễn bằng bù 2 của −5 trong máy tính.11111011 là biểu diễn bằng bù 2 của −5 trong máy tính.

Phương pháp biểu diễn số bù 2 ra đời khi người ta gặp vấn đề Phương pháp biểu diễn số bù 2 ra đời khi người ta gặp vấn đề với hai phương pháp dấu lượng và bù 1, đó là:với hai phương pháp dấu lượng và bù 1, đó là:

Có hai cách biểu diễn cho số 0. Có hai cách biểu diễn cho số 0. Bit nhớ phát sinh sau khi đã thực hiện phép tính phải được Bit nhớ phát sinh sau khi đã thực hiện phép tính phải được

cộng tiếp vào kết quả. cộng tiếp vào kết quả.

Page 14: Số âm trong máy tính

Bù 2 (tt)Bù 2 (tt) Với phương pháp bù 2, số 0 chỉ có một cách biểu diễn duy Với phương pháp bù 2, số 0 chỉ có một cách biểu diễn duy

nhất là 00000000 (mẫu 8 bit). Việc đổi dấu một số – kể cả từ nhất là 00000000 (mẫu 8 bit). Việc đổi dấu một số – kể cả từ âm sang dương hay từ dương sang âm – đều được thực hiện âm sang dương hay từ dương sang âm – đều được thực hiện theo cùng một cách, đó là: đảo tất cả các bit rồi cộng thêm một theo cùng một cách, đó là: đảo tất cả các bit rồi cộng thêm một vào kết quả. Việc thực hiện phép cộng với số biểu diễn theo vào kết quả. Việc thực hiện phép cộng với số biểu diễn theo phương pháp bù 2 được thực hiện hoàn toàn giống như cộng phương pháp bù 2 được thực hiện hoàn toàn giống như cộng hai số nhị phân bình thường, tuy nhiên, khi phát sinh bit nhớ ở hai số nhị phân bình thường, tuy nhiên, khi phát sinh bit nhớ ở bit dấu, ta có thể bỏ nó đi. Về vấn đề này, xin xem thêm ở bit dấu, ta có thể bỏ nó đi. Về vấn đề này, xin xem thêm ở bài chính về bù 2bài chính về bù 2..

Với mẫu 8 bit, phương pháp bù 2 có thể biểu diễn tốt các số Với mẫu 8 bit, phương pháp bù 2 có thể biểu diễn tốt các số nguyên có giá trị từ −128 đến +127 (so với từ −127 đến +127 nguyên có giá trị từ −128 đến +127 (so với từ −127 đến +127 theo phương pháp dấu lượng và bù 1) do được lợi từ việc tiết theo phương pháp dấu lượng và bù 1) do được lợi từ việc tiết kiệm được một cách biểu diễn số 0 (không phân biệt giữa −0 kiệm được một cách biểu diễn số 0 (không phân biệt giữa −0 và +0).và +0).

Page 15: Số âm trong máy tính

Bù 2 (tt)Bù 2 (tt) Bù 2Bù 2 ( (tiếng Anhtiếng Anh: : two's complementtwo's complement) là một số trong hệ ) là một số trong hệ

nhị phânnhị phân là là bù đúngbù đúng ( (true complementtrue complement) của một số khác. Một ) của một số khác. Một số bù 2 có được do đảo tất cả các số bù 2 có được do đảo tất cả các bitbit có trong số nhị phân (đổi có trong số nhị phân (đổi 1 thành 0 và ngược lại) rồi thêm 1 vào kết quả vừa đạt được. 1 thành 0 và ngược lại) rồi thêm 1 vào kết quả vừa đạt được. Thực chất, số biểu diễn ở dạng bù 2 là số biểu diễn ở Thực chất, số biểu diễn ở dạng bù 2 là số biểu diễn ở bù 1bù 1 rồi rồi sau đó sau đó cộngcộng thêm 1. thêm 1.

Phương pháp bù 2 thường được sử dụng để Phương pháp bù 2 thường được sử dụng để biểu diễn số âm trong máy tínhbiểu diễn số âm trong máy tính. Theo phương pháp này, bit . Theo phương pháp này, bit cực trái (là bit nằm bên trái cùng của byte) được sử dụng làm cực trái (là bit nằm bên trái cùng của byte) được sử dụng làm bit dấu (bit dấu (sign bitsign bit - là bit tượng trưng cho dấu của số) với quy - là bit tượng trưng cho dấu của số) với quy ước: nếu bit dấu là 0 thì số là số dương, còn nếu nó là 1 thì số ước: nếu bit dấu là 0 thì số là số dương, còn nếu nó là 1 thì số là là số âmsố âm. Ngoài bit dấu này ra, các bit còn lại được dùng để . Ngoài bit dấu này ra, các bit còn lại được dùng để diểu diễn độ lớn của số.diểu diễn độ lớn của số.

Page 16: Số âm trong máy tính

Ví dụVí dụ

Ví dụ: số nguyên −5 ở hệ thập phân được biểu diễn Ví dụ: số nguyên −5 ở hệ thập phân được biểu diễn trong máy tính theo phương pháp bù 2 như sau (với trong máy tính theo phương pháp bù 2 như sau (với mẫu 8 bit):mẫu 8 bit):

Bước 1: xác định số nguyên 5 ở hệ thập phân được biểu diễn Bước 1: xác định số nguyên 5 ở hệ thập phân được biểu diễn trong máy tính là: 0000 0101. trong máy tính là: 0000 0101.

Bước 2: đảo tất cả các bit nhận được ở bước 1. Kết quả sau khi Bước 2: đảo tất cả các bit nhận được ở bước 1. Kết quả sau khi đảo là: 1111 1010. đảo là: 1111 1010.

Bước 3: cộng thêm 1 vào kết quả thu được ở bước 2: kết quả sau Bước 3: cộng thêm 1 vào kết quả thu được ở bước 2: kết quả sau khi cộng: 1111 1011. khi cộng: 1111 1011.

Bước 4: vì là biểu diễn số âm nên bit bên trái cùng luôn giữ là 1. Bước 4: vì là biểu diễn số âm nên bit bên trái cùng luôn giữ là 1.

Vậy với phương pháp bù 2, số −5 ở hệ thập phân được biểu Vậy với phương pháp bù 2, số −5 ở hệ thập phân được biểu diễn trong máy tính như sau: 1111 1011.diễn trong máy tính như sau: 1111 1011.

Page 17: Số âm trong máy tính

Ngoài cách làm theo định nghĩa như trên ra, ta Ngoài cách làm theo định nghĩa như trên ra, ta còn có thể áp dụng phương pháp bù 2 theo quy còn có thể áp dụng phương pháp bù 2 theo quy tắc sau: với biểu diễn nhị phân của một số tắc sau: với biểu diễn nhị phân của một số dương cho trước, để biểu diễn số âm tương dương cho trước, để biểu diễn số âm tương ứng, ta bắt đầu tìm từ phải sang trái cho đến ứng, ta bắt đầu tìm từ phải sang trái cho đến khi gặp bit đầu tiên có giá trị 1. Khi gặp được khi gặp bit đầu tiên có giá trị 1. Khi gặp được bit này, ta đảo tất cả các bit từ ngay kề trước bit này, ta đảo tất cả các bit từ ngay kề trước nó (tức trước bit có giá trị 1 vừa nói tới) cho nó (tức trước bit có giá trị 1 vừa nói tới) cho đến bit cực trái, và luôn nhớ: bit cực trái là 1. đến bit cực trái, và luôn nhớ: bit cực trái là 1.

Page 18: Số âm trong máy tính

Ví dụ: ta cũng biểu diễn lại số nguyên −5 ở hệ thập Ví dụ: ta cũng biểu diễn lại số nguyên −5 ở hệ thập phân sang hệ nhị phân theo quy tắc mới này (giả sử phân sang hệ nhị phân theo quy tắc mới này (giả sử với mẫu 8 bit):với mẫu 8 bit):

Bước 1: xác định số nguyên 5 ở hệ thập phân được biểu diễn Bước 1: xác định số nguyên 5 ở hệ thập phân được biểu diễn trong máy tính là: 0000 0101. trong máy tính là: 0000 0101.

Bước 2: bắt đầu tìm (từ phải qua trái) bit đầu tiên có giá trị 1, ta Bước 2: bắt đầu tìm (từ phải qua trái) bit đầu tiên có giá trị 1, ta thấy, đó là bit thứ nhất (tính từ phải qua). thấy, đó là bit thứ nhất (tính từ phải qua).

Bước 3: đảo tất cả các bit nằm trước bit thu được ở bước 2. Kết Bước 3: đảo tất cả các bit nằm trước bit thu được ở bước 2. Kết quả nhận được: 1111 1011 quả nhận được: 1111 1011

Bước 4: vì là biểu diễn số âm nên bit bên trái cùng luôn giữ là 1. Bước 4: vì là biểu diễn số âm nên bit bên trái cùng luôn giữ là 1. Vậy số −5 ở hệ thập phân được biểu diễn trong máy tính Vậy số −5 ở hệ thập phân được biểu diễn trong máy tính

theo phương pháp bù 2 là: 1111 1011 (hoàn toàn giống như theo phương pháp bù 2 là: 1111 1011 (hoàn toàn giống như kết quả trong ví dụ trên).kết quả trong ví dụ trên).

Page 19: Số âm trong máy tính

Thực hiện phép cộng với số bù 2Thực hiện phép cộng với số bù 2

Khi thực hiện phép tính cộng với số âm biểu Khi thực hiện phép tính cộng với số âm biểu diễn theo phương pháp bù 2, ta thực hiện như diễn theo phương pháp bù 2, ta thực hiện như phép cộng nhị phân bình thường, tuy nhiên, phép cộng nhị phân bình thường, tuy nhiên, trong trường hợp khi đã thực hiện phép cộng trong trường hợp khi đã thực hiện phép cộng đến bit cực trái mà vẫn phát sinh bit nhớ thì ta đến bit cực trái mà vẫn phát sinh bit nhớ thì ta bỏ bit nhớ này đi.bỏ bit nhớ này đi.

Ví dụ:Ví dụ: 1. Cộng hai số thập phân −5 với 2 (mẫu 8 bit):1. Cộng hai số thập phân −5 với 2 (mẫu 8 bit):

Page 20: Số âm trong máy tính

Ví dụVí dụ

Ví dụ:Ví dụ:

1.1. Cộng hai số thập phân −5 với 2 (mẫu 8 bit):Cộng hai số thập phân −5 với 2 (mẫu 8 bit):

1111 1011 (số bù 2 của −5) 1111 1011 (số bù 2 của −5)

+ 0000 0010 (số 2 ở hệ nhị phân) + 0000 0010 (số 2 ở hệ nhị phân) =========== ===========

1111 1101 (số bù của −3) 1111 1101 (số bù của −3)

Page 21: Số âm trong máy tính

Ví dụVí dụ

Cộng hai số thập phân −5 với −7 (mẫu 8 Cộng hai số thập phân −5 với −7 (mẫu 8 bit): bit):

1111 1011 (số bù 2 của −5) 1111 1011 (số bù 2 của −5)

+ 1111 1001 (số bù 2 của −7)+ 1111 1001 (số bù 2 của −7)

=========== ===========

1111 0100 (số bù của −12) 1111 0100 (số bù của −12)

Page 22: Số âm trong máy tính

Tràn SốTràn Số

Xét trường hợp ta đang có hai số âm −6 và −4 ở Xét trường hợp ta đang có hai số âm −6 và −4 ở hệ thập phân. Biểu diễn nhị phân bằng phương hệ thập phân. Biểu diễn nhị phân bằng phương pháp bù 2 với mẫu 4 bit của hai số trên lần pháp bù 2 với mẫu 4 bit của hai số trên lần lượt là 1010 và 1100. Giả sử, bây giờ, ta cần lượt là 1010 và 1100. Giả sử, bây giờ, ta cần cộng hai số này.cộng hai số này.Ta thực hiện phép cộng:Ta thực hiện phép cộng:

Page 23: Số âm trong máy tính

Tràn số (tt)Tràn số (tt)

1010 (số bù 2 của −6) 1010 (số bù 2 của −6)

+ 1100 (số bù 2 của −4)+ 1100 (số bù 2 của −4)

====== ======

0110 0110

Ta thấy, kết quả nhận được là 0110. Nếu đổi ra Ta thấy, kết quả nhận được là 0110. Nếu đổi ra hệ thập phân, đây là số nguyên dương 6 chứ hệ thập phân, đây là số nguyên dương 6 chứ không phải −10 như mong đợi. không phải −10 như mong đợi.