Bộ mã Gray là gì

Khi một số, một từ, một kí hiệu được biểu diễn bởi một nhóm các kí hiệu đặc biệt, ta gọi chúng được mã hoá, và nhóm kí hiệu đặc biệt đó được gọi là mã.

Bảng sau giới thiệu một số loại mã thông dụng được dùng để mã hoá số thập phân. Các trạng thái x không được sử dụng.

Bảng 1. Một số loại mã thông dụng được dùng để mã hoá số thập phân.

Decimal Nhị
phân
BCD
[8421]
BCD 2421 Quá 3 Gray Biquinary 1 trong 10
0 0000 0000 0000 0011 0000 0100001 1000000000
1 0001 0001 0001 0100 0001 0100010 0100000000
2 0010 0010 0010 0101 0011 0100100 0010000000
3 0011 0011 0011 0110 0010 0101000 0001000000
4 0100 0100 0100 0111 0110 0110000 0000100000
5 0101 0101 1011 1000 0111 1000001 0000010000
6 0110 0110 1100 1001 0101 1000010 0000001000
7 0111 0111 1101 1010 0100 1000100 0000000100
8 1000 1000 1110 1011 1100 1001000 0000000010
9 1001 1001 1111 1100 1101 1010000 0000000001
10 1010 x x x 1111 x x
11 1011 x x x 1110 x x
12 1100 x x x 1010 x x
13 1101 x x x 1011 x x
14 1110 x x x 1001 x x
15 1111 x x x 1000 x x

1. Mã BCD [Binary-Coded-Decimal]

  • Mã BCD còn được gọi là mã 8421 được dùng để mã hoá các ký số của một số thập phân.
  • Để chuyển một số thập phân sang mã BCD, ta thay thế từng ký số thành 4 bit nhị phân tương ứng.

Bảng 2. Một số kí tự được mã hóa mã BCD

7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
  • Mã BCD chỉ bao gồm các tổ hợp nhị phân từ 0000 đến 1001, các tổ hợp nhị phân từ 1010 đến 1111 không thuộc bộ mã BCD.

Ví dụ: đổi số 253,86D sang mã BCD

253,86D = 0010 0101 0011,1000 0110 BCD

Mã BCD dùng rất thuận lợi: mạch điện tử đọc các số BCD và hiển thị ra bằng đèn bảy đoạn [led hoặc LCD] hoàn toàn giống như con người đọc và viết ra số thập phân.

2. Mã BCD 2421

  • Mã BCD 2421 cũng được dùng để biểu diễn một số thập phân.
  • Mã BCD 2421 là một tổ hợp nhị phân 4 bit có trọng số 2-4-2-1, không bao gồm các tổ hợp nhị phân từ 0101 đến 1010.
  • Mã BCD 2421 có tính tự bù [bù cơ số]
    Ví dụ: Mã 2421 của số 0 là 0000, bù với mã 2421 của số 9 là 1111
  • Mã 2421 của số 4 là 0100, bù với mã 2421 của số 5 là 1011.

3. Mã quá 3

  • Mã quá 3 được tạo ra từ mã 8421 bằng cách cộng thêm 3.
  • Mã quá 3 là loại mã không có trọng số.
  • Mã quá 3 cũng có thể dùng để diễn tả một ký số thập phân.
  • Mã quá 3 cũng có tính tự bù.

Ví dụ:

  • Mã quá 3 của số 0 là 0011, bù với mã quá 3 của số 9 là 1100
  • Mã quá 3 của số 3 là 0110, bù với mã quá 3 của số 6 là 1001

4. Mã Gray

  • Mã Gray là loại mã không có trọng số.
  • Mã Gray có đặc điểm là hai giá trị mã liên tiếp chỉ khác nhau tại một bit. Do đó mã Gray không phù hợp với các phép tính số học nhưng có một số ứng dụng quan trọng trong các thiết bị vào ra và ở một số thiết bị chuyển đổi liên tục.
  • Mã Gray N bit được suy ra từ mã nhị phân N bit theo quy luật sau:

– Phương pháp 1: Các bit của mã nhị phân và mã Gray được đánh số từ phải sang trái, từ 0 đến N-1. Bit thứ i của mã Gray sẽ là 0 nếu các bit thứ i và i+1 của mã nhị phân tương ứng giống nhau, nếu không thì bit thứ i sẽ là 1. [Khi i+1 = N, bit thứ N của mã nhị phân được hiểu là 0].

Phương pháp 2: Đi từ trái sang phải, bit đi sau bit 0 [của mã nhị phân tương ứng] được giữ nguyên, bit đi sau bit 1 [của mã nhị phân tương ứng] thì bị đảo [từ 0 thành 1, từ 1 thành 0].

Ngoài ra, mã Gray còn được gọi là mã phản chiếu [do tính đối xứng của các số hạng trong tập hợp mã, giống như phản chiếu qua gương]

Người ta có thể thiết lập mã Gray bằng cách dựa vào tính đối xứng này:

  • Giả sử ta đã có tập hợp 2n từ mã của số n bit thì có thể suy ra tập hợp 2n+1 từ mã của số [n + 1] bit bằng cách:
  • Viết ra 2n từ mã theo thứ tự từ nhỏ đến lớn
  • Thêm số 0 vào trước tất cả các từ mã đã có để được một phần của tập hợp từ mã mới
  • Phần thứ hai của tập hợp gồm các từ mã giống như phần thứ nhất nhưng trình bày theo thứ tự ngược lại [giống như phản chiếu qua gương] và phía trước thêm vào số 1 thay vì số 0.

5. Mã Biquinary

  • Sử dụng 7 bit để biểu diễn các ký số thập phân từ 0 đến 9.
  • Hai bit đầu của mã giúp phân biệt các mã từ 0 đến 4 và từ 5 đến 9 [0 – 4 hai bit đầu là 01, 5 – 9 hai bit đầu là 10]. Năm bit cuối biểu diễn trong hai tầm 0 – 4 và 5 – 9
  • Ưu điểm của mã Biquinary là có tính phát hiện sai. Trong mã này, nếu có bất kỳ bit nào của từ mã khi truyền bị đảo mức logic thì kết quả thu được sẽ không nằm trong bộ mã Biquinary.

Ví dụ: Mã Biquinary của số 4 là 0101000, nếu có 1 bit bất kỳ bị đảo mức, chẳng hạn bit thứ 2 thì từ mã thu được là 0101010 không thuộc bộ mã Biquinary.

6. Mã 1 trong 10

Mã này cũng là loại mã không có trọng số và có ưu điểm là có tính chất phát hiện sai vì chỉ có 1 bit trong bộ mã mang giá trị 1.

Tự bản thân mã có khả năng giao tiếp với đèn LED nhằm hiển thị chữ số thập phân.

7. Mã LED 7 đoạn

Hình 1. Led 7 đoạn.

  • Với LED Anode chung, để một đoạn LED nào sáng phải cung cấp điện áp thấp ra vị trí đoạn tương ứng
  • Với LED Cathode chung, để một đoạn LED nào sáng phải cung cấp điện áp cao ra vị trí đoạn tương ứng.
  • Một số loại mã LED 7 đoạn:

8. Số dấu chấm động

8.1. Định nghĩa

Trong thực tế, các giá trị mà các thiết bị số học tính toán là các đại lượng số thực, với dải số thập phân rất rộng. Do đó nhu cầu thiết yếu là phải có cách thức mô tả các đại lượng số thực dưới dạng bit nhị phân. Một cách được sử dụng là dùng dấu chấm động [floating point number].

Tổng quát: Một số thực X được biểu diễn theo kiểu số dấu chấm động như sau:

X = M × RE

  • M là phần định trị [Mantissa]
  • R là cơ số [Radix], nếu là hệ thập phân sẽ nhận giá trị 10
  • E là phần mũ [Exponent].
Anode chung Cathode chung
Số dp g f e d c b a Giá trị HEX Số dp g f e d c b a Giá trị HEX
0 1 1 0 0 0 0 0 0 C0H 0 0 0 1 1 1 1 1 1 3FH
1 1 1 1 1 1 0 0 1 F9H 1 0 0 0 0 0 1 1 0 06H
2 1 0 1 0 0 1 0 0 A4H 2 0 1 0 1 1 0 1 1 5BH
3 1 0 1 1 0 0 0 0 B0H 3 0 1 0 0 1 1 1 1 4FH
4 1 0 0 1 1 0 0 1 99H 4 0 1 1 0 0 1 1 0 66H
5 1 0 0 1 0 0 1 0 92H 5 0 1 1 0 1 1 0 1 6DH
6 1 0 0 0 0 0 1 0 82H 6 0 1 1 1 1 1 0 1 7DH
7 1 1 1 1 1 0 0 0 F8H 7 0 0 0 0 0 1 1 1 07H
8 1 0 0 0 0 0 0 0 80H 8 0 1 1 1 1 1 1 1 7FH
9 1 0 0 1 0 0 0 0 90H 9 0 1 1 0 1 1 1 1 6FH
A 1 0 0 0 1 0 0 0 88H A 0 1 1 1 0 1 1 1 77H
B 1 0 0 0 0 0 1 1 83H B 0 1 1 1 1 1 0 0 7CH
C 1 1 0 0 0 1 1 0 C6H C 0 0 1 1 1 0 0 1 39H
D 1 0 1 0 0 0 0 1 A1H D 0 1 0 1 1 1 1 0 5EH
E 1 0 0 0 0 1 1 0 86H E 0 1 1 1 1 0 0 1 79H
F 1 0 0 0 1 1 1 0 8EH F 0 1 1 1 0 0 0 1 71H

Ví dụ:

85.59 = 0.8559 × 102 = 8.559 × 101 = 855.9 × 10-1 = …

Với cách định nghĩa như trên, rõ ràng một vấn đề phát sinh là sẽ có vô số cách xác định phần định trị và phần mũ tùy thuộc vào vị trí của dấu chấm thập phân [hoặc hệ cơ số bất kỳ], dấu chấm sẽ di ‘động’. Chính vì điều này dấu chấm động cần được chuẩn hóa cho một số bất kỳ.

8.2. Chuẩn IEEE 754/85

Chuẩn IEEE 754/85 được đưa ra nhằm chuẩn hóa các số thực dưới dạng dấu chấm động cho cơ số nhị phân, trong đó một số thập phân bất kỳ được biểu diễn dưới dạng:

X = +/-1.xxx × 2E

Độ chính xác của giá trị số thập phân X sẽ tăng lên nếu chuỗi nhị phân .xxx càng dài. Chuẩn IEEE 754/85 gồm 4 dạng:

  • Dạng 32-bit
  • Dạng 44-bit
  • Dạng 64-bit
  • Dạng 80-bit

Cấu trúc các dạng dấu chấm động theo chuẩn IEEE 754/85

Hình 2. Dấu chấm động chuẩn IEEE 754/85.

Dạng 32 bit
S là bit dấu

  • S = 0 ⇒ Số dương
  • S = 1 ⇒ Số âm
  • e [8 bit] là mã excess-127 [28-1-1]của phần mũ E:

e = E + 127 ⇒ E = e – 127

  • Giá trị 127 được gọi là độ lệch [bias]
  • m [23 bit] là phần lẻ của phần định trị M:

M = 1 × m

  • Công thức xác định giá trị thập của số thực dưới dạng 32 bit:

X =[-1]S × 1.m × 2E = [-1]S × 1.m × 2e – 127

Ví dụ 1: Xác định giá trị của số thực được biểu diễn bằng 32-bit như sau:

1100 0001 0101 0110 0000 0000 0000 0000

  • S = 1 => Số âm
  • e = 1000 00102 = 130 => E = 130 – 127 = 3
  • Vậy: X = -1.10101100 × 23 = -1101.011 = -13.375

Ví dụ 2: Biểu diễn số thực X = 83.75 về dạng số dấu chấm động IEEE 754/85 32-bit

X = 83.75 = 1010011.112 = 1.01001111 x 26

Ta có:

  • S = 0 vì đây là số dương
  • E = e-127=6 => e = 127+6=13310 = 1000 01012
  • Vậy: X = 0100 0010 1010 0111 1000 0000 0000 0000

Các quy ước cho các giá trị đặc biệt

  • Các bit của e bằng 0, các bit của m bằng 0, thì X = ±0

x000 0000 0000 0000 0000 0000 0000 0000 ⇒ X=±0

  • Các bit của e bằng 1, các bit của m bằng 0, thì X = ± ∞

x111 1111 1000 0000 0000 0000 0000 0000 ⇒ X=± ∞

  • Các bit của e bằng 1, còn m có ít nhất 1 bit bằng 1

không biểu diễn cho số nào cả [NaN – not a number].

Video liên quan

Chủ Đề