PHƯƠNG PHÁP DẤU VÀ ĐỘ LỚN

     

✪ Với n bit dùng để biểu diễn số nguyên ta có thể biểu diễn được 2n số nguyên, trong đó:● Dải số nguyên có dấu là : <-2n-1;2n-1-1>● Dải số nguyên không dấu là : <0;2n-1>✪ Trục số học của máy tính biểu diễn số nguyên là một vòng tròn số với 2n vạch chia.

Bạn đang xem: Phương pháp dấu và độ lớn

Từ vạch số 0 đi thuận chiều kim đồng hồ để tăng dần giá trị, ngược chiều kim đồng hồ để giảm dần giá trị.Nếu giá trị cao (hoặc bé) vượt quá 1 vòng tròn 2n vạch thì ta vẫn tiếp tục đi theo vòng tròn trục số. Khi đó giá trị hiển thị ra kết quả luôn nằm trong dải số trên vạch chia của đường tròn

✪ Ví dụ với 8 bit biểu diễn số nguyên● Dải số nguyên có dấu là : <-128;127>● Dải số nguyên không dấu là : <0;255>● Vòng tròn trục số là:


*

Ta thấy nếu giá trị nhập vào có lớn hay bé đến đâu đi nữa thì vòng tròn trục số vẫn cứ quay đi quay lại._Với dải số có dấu nếu đưa vào giá trị là 128 thì kết quả hiển thị là -128, vì bình thường liền sau 127 là 128 nhưng liền sau 127 trên trục số tròn theo ví dụ trên là -128. Tương tự nếu nhập vào 129 thì kết quả hiển thị là -127._Với dải số không dấu nếu nhập vào giá trị 256 thì kết quả hiển thị là 0, vì bình thường liền sau 255 là 256 nhưng liền sau 255 trên trục số tròn theo ví dụ trên là 0. Tương tự nếu nhập vào -1 thì kết quả hiển thị là 255, vì liền trước 0 là 255.

(Đấy chỉ là với ví dụ 8 bit, với n bit bất kì dải số số sẽ là khác nhau. Các bạn cứ đi theo vòng tròn trục số để xác định các số tăng và giảm dần)

✪Lý thuyệt vậy là được rồi, đi vào làm bài tập ví dụ trong sách bài tập nào:Dạng bài : Đưa vào một giá trị tìm kết quả hiển thị ra ngoài màn hình.

Các bước làm bài :

_Bước 1: Xác định dải số_Bước 2: Tính giá trị đưa vào một cách bình thường_Bước 3: +Nếu giá trị tính được nằm trong dải số thì kết quả hiển thị đúng giá trị đó.

+Nếu giá trị tính được lớn hơn dải số thì ta lấy giá trị đó trừ đi 2n (Với n là số bit đề đã cho). Cứ trừ đi 2n cho đến khi giá trị thu được thuộc dải số thì ngừng lại. Đó chính là kết quả hiển thị.

+Nếu giá trị tính được nhỏ hơn dải số thì ta lấy giá trị đó cộng thêm 2n (Với n là số bit đề đã cho). Cứ cộng với 2n cho đến khi giá trị thu được thuộc dải số thì ngừng lại. Đó chính là kết quả hiển thị.● Tóm gọn lại thì là: (Cái tóm gọn này không hiểu thì không nên cố đọc nha)

Out=In + a.2n

Với Out là kết quả hiển thịIn là giá trị nhập vàon là số bit đề cho

a là số nguyên thỏa mãn Out thuộc dải số

● Ví dụ 1:
Cho 2 giá trị A= 195, B=143 được biểu diễn dưới dạng số nguyên không dấu 8 bit trong máy tính. Kết quả phép toán A+B mà máy tính hiển thị là bao nhiêu?(Bài 40 sách bài tập Tin học đại cương HUST, trang 10)_Vì là số nguyên không dấu 8 bit nên dải số là <0;255>_Giá trị vào A+B=195+143=338_Vì 338 > 255 (lớn hơn dải số) nên ta có:

338-28=338-256=82 ∈ <0;255>

Vậy kết quả hiển thị là 82 ● Ví dụ 2:
Cho 2 giá trị A= +95, B=+43 được biểu diễn dưới dạng số nguyên có dấu 8 bit trong máy tính. Kết quả phép toán A+B mà máy tính hiển thị là bao nhiêu?(Bài 41 sách bài tập Tin học đại cương HUST, trang 10)_Vì là số nguyên có dấu 8 bit nên dải số là <-128;127>_Giá trị vào A+B=95+43=138_Vì 138 > 127 (lớn hơn dải số) nên ta có:

138-28=138-256=-118 ∈ <-128;127>

Vậy kết quả hiển thị là -118 ● Ví dụ 3:
Cho 2 giá trị A= +95, B=-43 được biểu diễn dưới dạng số nguyên có dấu 8 bit trong máy tính. Kết quả phép toán A-B mà máy tính hiển thị là bao nhiêu?(Bài 42 sách bài tập Tin học đại cương HUST, trang 11)_Vì là số nguyên có dấu 8 bit nên dải số là <-128;127>_Giá trị vào A+B=95-(-43)=138_Vì 138 > 127 (lớn hơn dải số) nên ta có:

138-28=138-256=-118 ∈ <-128;127>

Vậy kết quả hiển thị là -118 ● Ví dụ 4:
Cho 2 giá trị A= -43, B=-95 được biểu diễn dưới dạng số nguyên có dấu 8 bit trong máy tính. Kết quả phép toán A+B mà máy tính hiển thị là bao nhiêu?(Bài 43 sách bài tập Tin học đại cương HUST, trang 11)_Vì là số nguyên có dấu 8 bit nên dải số là <-128;127>_Giá trị vào A+B=-43+(-95)=-138_Vì -138 Vậy kết quả hiển thị là +118 ● Ví dụ 5:Cho 2 giá trị A= 5, B=6 được biểu diễn dưới dạng số nguyên có dấu 4 bit trong máy tính. Kết quả phép toán 2*A+6*B mà máy tính hiển thị là bao nhiêu?_Vì là số nguyên có dấu 4 bit nên dải số là <-8;7>_Giá trị vào 2*A+6*B=10+36=46_Vì 46 > 7 (lớn hơn dải số) nên ta có:

46-24=46-16=30 > 7 (lớn hơn dải số)


30-24=30-16=14 > 7 (lớn hơn dải số)14-24=14-16=-2 ∈ <-8;7>Vậy kết quả hiển thị là -2

(Ta thấy bài trên giá trị vào lớn hơn dải số nên ta cứ lấy trừ đi 2n cho đến khi nào giá trị thu được thuộc dải số thì ngừng)

● Ví dụ 6:
Cho 2 giá trị A= 12, B=6 được biểu diễn dưới dạng số nguyên không dấu 4 bit trong máy tính. Kết quả phép toán A-7*B mà máy tính hiển thị là bao nhiêu?_Vì là số nguyên không dấu 4 bit nên dải số là <0;15>_Giá trị vào A-7*B=12-42=-30_Vì -30

Có thể bạn quan tâm

ღ Lưu ý: Mình chỉ sử dụng Fanpage Theza2 để bình luận. Mọi nick khác đều không phải mình.Mình hiện tại có những việc riêng phải bận cho cuộc sống của mình, sẽ không còn thường xuyên hồi đáp các bình luận, mong được lượng thứ..

Liên kết hay đáng ghe thăm: HocTapHay.com:Tổng hợp kiến thức, bải giảng các môn học Trung học cơ sở, Trung học phổ thông,... khá đầy đủ và chi tiết.

Trong toán học, các số âm (bất kể thuộc hệ cơ số nào) đều đượ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, số nguyên âm năm được biểu diễn là −5. Tuy nhiên, trong máy tính, khi mọi ký hiệu, con số,... đều được biểu diễn dưới hệ nhị phâ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.


*

So sánh giữa các dạng biểu diễn (mẫu 4 bit)

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ố).

Để biểu diễn một số â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

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 (010) đến 1111111 (12710). 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ừ −12710 đến +12710. 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 (−0).

Ví dụ: giả sử mẫu 8 bit, khi sử dụng phương pháp dấu lượng, số 510 được 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 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 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 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ệ đầu tiên (như IBM 7090) đã sử dụng phương pháp dấu lượng khi biểu diễn số âm.

Xem thêm: Chuẩn Bị Đồ Đi Sinh Gọn Nhẹ Trong Mùa Dịch Từ Tư Vấn Của Bác Sĩ Sản Khoa

Bài chi tiết: Bù 1

Phương pháp bù 1 biểu 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, 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ố.

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 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ừ −12710 đến +12710 (chú ý: đã 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 8 bit).

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 máy PDP-1 và UNIVAC 1100/2200.

Bài chi tiết: Bù 2

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ả (ở hệ nhị phân).


Ví dụ: số −510 đượ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 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 11111011 là biểu diễn bằng bù 2 của −510 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 đề 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.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 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ừ −12810 đến +12710 (so với từ −12710 đến +12710 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 và +0).

Bài chi tiết: Bài chính về Số quá N (với trường hợp N = 3)

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 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 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−1400000100050000010116000001102700000111380000100049000010015100000101061100001011712000011008130000110191400001110101500001111

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.

Xem thêm: Cách Chữa Đầy Hơi Cho Bà Bầu, Làm Thế Nào Nếu Bị Đầy Bụng Khi Mang Thai

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.

Bù 1Bù 2Số quá 3

Lấy từ “https://vi.wikipedia.org/w/index.php?title=Biểu_diễn_số_âm&oldid=68131026”