Biểu diễn số âm – Wikipedia tiếng Việt

So sánh giữa những dạng trình diễn ( mẫu 4 bit )Trong toán học, những số âm ( bất kể thuộc hệ cơ số nào ) đều được màn biểu diễn bằng cách thường thì là đặt trước số 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 trình diễn là − 5. Tuy nhiên, trong máy tính, khi mọi ký hiệu, số lượng, … đều được trình diễn dưới hệ nhị phân trải qua hai chữ số 0 và 1 thì mọi chuyệ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 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 (sign-and-magnitude), bù 1, bù 2 và số quá N (excess-N).

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 phương pháp khác vẫn có thể được sử dụng.

Phương pháp dấu lượng dùng bit cực trái làm bit dấu (sign bit) – tức đại diện cho dấu của số – theo quy ước: nếu bit dấu là 1 thì số là số âm (1 tương đương với dấu “-“), ngược lại, nếu nó là 0 thì số là số dương (0 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 giá trị tuyệt đối – absolute value – của số).

Để trình diễn một số ít âm về dạng nhị phân có dấu với mẩu K bit là lấy số cần trình diễn cộng thêm 2K-1 sau đó màn biểu diễn chúng ở hệ nhị phânTheo giải pháp này, một byte 8 bit sẽ có 7 bit ( trừ đi bit dấu ) được dùng để màn biểu diễn cho những số có giá trị từ 0000000 ( 010 ) đến 1111111 ( 12710 ). Khi sử dụng bit dấu, ý nghĩa của 7 bit trên sẽ biến hóa, và ta hoàn toàn có thể màn biểu diễn những số từ − 12710 đến + 12710. Trong giải pháp dấu lượng, số 0 hoàn toàn có thể được màn biểu diễn ở hai dạng, đó là 00000000 ( + 0 ) và 10000000 ( − 0 ) .Ví dụ : giả sử mẫu 8 bit, khi sử dụng giải pháp dấu lượng, số 510 được màn biểu diễn sang hệ nhị phân là : 0000 0101, còn số − 5 là 1000 0101 .So sánh với cách trình diễn số âm mà ta thường sử dụng, ta thấy chiêu thức dấu lượng có nhiều điểm tương đương. Trong hệ thập phân, khi muốn trình diễn số có dấu, ta đặt dấu cần màn 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ó 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ệ tiên phong ( như IBM 7090 ) đã sử dụng chiêu thức dấu lượng khi trình diễn số âm .
Phương pháp bù 1 trình diễn số âm theo cách sau :

  • Thứ nhất, bit dấu 0 nếu số là số dương, và 1 nếu số là số âm.
  • Thứ hai, sử dụng toán tử thao tác bit (bitwise) NOT để đảo tất cả các bit của số nhị phân dương (tính bit dấu) để biểu diễn số âm tương ứng.

Như vậy, chiêu thức bù 1 trọn vẹn giống như giải pháp dấu lượng, duy chỉ khác ở cách trình diễn độ lớn của số .

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

Giống chiêu thức dấu lượng, một byte 8 bit vận dụng chiêu thức bù 1 cũng hoàn toàn có thể trình diễn những số từ − 12710 đến + 12710 ( chú ý quan tâm : đã mất đi một bit dùng làm bit dấu ). Bù 1 cũng có hai dạng màn biểu diễn cho số 0, gồm có : 00000000 ( + 0 ) và 11111111 ( − 0 ) ( mẫu 8 bit ) .

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 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 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 ở bài chính về bù 1.

Xem thêm: Nằm lòng cách vệ sinh máy lọc nước Karofi đúng cách

Phương pháp màn biểu diễn số bù 1 được sử dụng thoáng rộng trong những thế hệ máy tính cũ, nổi bật là những dòng máy PDP-1 và UNIVAC 1100 / 2200 .
Trong chiêu thức bù 2, những số âm được màn biểu diễn giống như chiêu thức bù 1, tuy nhiên, phải cộng thêm 1 vào tác dụng ( ở hệ nhị phân ) .Ví dụ : số − 510 được màn biểu diễn sang hệ nhị phân ( xét mẫu 8 bit ) sử dụng giải pháp bù 1 là 11111010. Để trình diễn theo giải 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 11111011 là trình diễn bằng bù 2 của − 510 trong máy tính .Phương pháp trình diễn số bù 2 sinh ra khi người ta gặp yếu tố với hai chiêu thức dấu lượng và bù 1, đó là :

  • 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 cộng tiếp vào kết quả.

Với chiêu thức bù 2, số 0 chỉ có một cách trình diễn duy nhất là 00000000 ( mẫu 8 bit ). Việc đổi dấu một số ít – kể cả từ âm sang dương hay từ dương sang âm – đều được triển khai theo cùng một cách, đó là : hòn đảo tổng thể những bit rồi cộng thêm một vào hiệu quả. Việc thực thi phép cộng với số trình diễn theo giải pháp bù 2 được thực thi trọn vẹn giống như cộng hai số nhị phân thông thường, tuy nhiên, khi phát sinh bit nhớ ở bit dấu, ta hoàn toàn có thể bỏ nó đi. Về yếu tố này, xin xem thêm ở bài chính về bù 2 .Với mẫu 8 bit, chiêu thức bù 2 hoàn toàn có thể trình diễn tốt những số nguyên có giá trị từ − 12810 đến + 12710 ( so với từ − 12710 đến + 12710 theo giải pháp dấu lượng và bù 1 ) do được lợi từ việc tiết kiệm chi phí được một cách trình diễn số 0 ( không phân biệt giữa − 0 và + 0 ) .

Số quá N

[sửa|sửa mã nguồn]

Phương pháp biểu diễn số quá N – còn được gọi là biểu diễn số dịch (biased representation) – sử dụng một số nguyên N cho trước làm giá trị dịch (“dịch” hiểu nôm na theo nghĩa “sự dịch chuyển” hay “sự thiên lệch”). Theo phương pháp này, một giá trị thập phân (tức giá trị cần biểu diễn) sẽ được biểu diễn bằng dạng nhị phân của một số dương nào đó sao cho, giá trị của số dương này lớn hơn giá trị cần biểu diễn N đơn vị.

Ví dụ : giả sử cần màn biểu diễn giá trị 210 theo số quá 5 ( mẫu 8 bit ) :

  • Bước 1: ta có:
    • Giá trị cần biểu diễn: 2.
    • N = 5.
  • Bước 2: xác định số dương lớn hơn 210 năm đơn vị, đó là số 7.

Vậy 210 sẽ được màn biểu diễn bằng dạng nhị phân của 7 : 00000111 .

Theo ví dụ trên, ta sẽ có bảng sau:

Số thập phân cần biểu diễnGiá trị thập phân của số quá 5Do đó, số thập phân sẽ được biểu diễn thành
−5000000000
−4100000001
−3200000010
−2300000011
−1400000100
0500000101
1600000110
2700000111
3800001000
4900001001
51000001010
61100001011
71200001100
81300001101
91400001110
101500001111

Ta thấy, 0 được biểu diễn bằng nhị phân của 5, và −5 được biểu diễn bằng nhị phân của 0. Tổng quát, 0 được biểu diễn bằng nhị phân của N, còn −N được biểu diễn bằng mẫu có tất cả các bit đều là 0.

Phương pháp này ngày nay còn được sử dụng rộng rãi để biểu diễn các số chấm động (floating point number), tiêu biểu là chuẩn số chấm động IEEE. Theo chuẩn này, các số chấm động có độ chính xác đơn (single-precision) 32 bit (như kiểu float của Java) có phần mũ (chính là số lượng ký số của phần nằm sau dấu chấm thập phân) được biểu diễn bằng số quá 127 với mẫu 8 bit, và các số chấm động có độ chính xác đôi (double-precision) 64 bit (như kiểu double của Java) có phần mũ biểu diễn bằng số quá 1023 với mẫu 11 bit.

Source: https://dvn.com.vn
Category: Cảm Nang

Alternate Text Gọi ngay