Cơ chế biểu diễn số nguyên có dấu

Một phần của tài liệu Một Số Cấu Trúc Dữ Liệu Đặc Biệt (Trang 32 - 33)

x: Integer; begin

2.3.1. Cơ chế biểu diễn số nguyên có dấu

Khi biểu diễn một số nguyên bằng dãy bit: thì các bit được đánh số từ 0 tới theo thứ tự từ phải qua trái, gọi là thứ tự từ bit thấp nhất ( ) tới bit cao nhất ( ). Mỗi giá trị thuộc một kiểu số nguyên được biểu diễn trong máy tính bằng một dãy bit chiều dài cố định, nhưng tùy theo kiểu số nguyên, việc giải mã dãy bit ra giá trị số có sự khác nhaụ

Cơ chế biểu diễn số nguyên không dấu (Byte, Word, LongWord, QWord) khá dễ hiểu: Giá trị số đúng bằng giá trị nhị phân của dãy bit. Tức là giá trị của số nguyên không dấu biểu diễn bởi dãy bit bằng ∑ 2

.

Cơ chế biểu diễn số nguyên có dấu (ShortInt, SmallInt, LongInt, Int64) thì phức tạp hơn:

 Nếu bit cao nhất là 0 thì dãy bit này biểu diễn một số không âm đúng bằng giá trị không dấu

 Nếu bit cao nhất là 1 thì dãy bit này biểu diễn một số âm bằng giá trị không dấu trừ đi 2 với là kích thước tính bằng bit của kiểu số nguyên tương ứng.

Ví dụ xét hai kiểu số nguyên 8 bit: Byte và ShortInt, ta có giá trị của một số dãy nhị phân trong hai kiểu số nguyên này là:

Dãy bit Giá trị Byte: 0…28 – 1 Giá trị ShortInt: -27…27 – 1

00000000 0 0 00000001 1 1 00011001 25 25 01111111 127 127 10000000 128 -128 10000001 129 -127 11001101 205 -51 11111111 255 -1

Việc thực hiện các phép tính số học được thực hiện trực tiếp trên dãy bit. Ví dụ:

11001101 + 00011001 + 00011001 ────────

11100110

Biểu thức này có thể diễn giải ra thành 205 + 25 = 230 hoặc -51 + 25 = -26 tùy theo kiểu số nguyên trên từng toán hạng Byte (không dấu) hay ShortInt (có dấu)*.

Một số công thức biến đổi bit:

Phép cộng 1

Để tăng một số nguyên lên 1, máy sẽ xét dãy bit biểu diễn số nguyên đó, tìm bit 0 thấp nhất thay bởi bit 1 và đặt tất cả các bit đứng sau thành 0.

Ví dụ khi cộng 1 vào số , máy xác định bit 0 cuối cùng (bit số 2) thay bởi 1 và đặt các bit đứng sau (bit số 0, 1) thành 0, được dãy %101100 là biểu diễn nhị phân của số 44

Phép lấy số đối

Trong các kiểu số nguyên có dấu, giá trị -1 được biểu diễn bởi dãy gồm toàn bit 1. Chính vì thế phép toán sẽ luôn cho giá trị . Từ , ta suy ra:

Tức là để tính giá trị , máy sẽ đảo tất cả các bit trong , sau đó cộng thêm 1 vào dãy bit nàỵ

Một phần của tài liệu Một Số Cấu Trúc Dữ Liệu Đặc Biệt (Trang 32 - 33)

Tải bản đầy đủ (PDF)

(89 trang)