<< Chapter < Page | Chapter >> Page > |
Số này tương ứng với số thực (-1)S * (1,f1 f2 ..... f23) * 2(E - 127)
bit 31 30 23 22 bit 1 bit 0
S | E | f1 | f2 | ........... | f22 | f23 |
Hình I.7: Biểu diễn số có dấu chấm động chính xác đơn với 32 bit
Số này tương ứng với số thực (-1)S * (1,f1 f2 ..... f52) * 2(E - 1023)
bit 63 62 52 51 bit 1 bit 0
S | E | f1 | f2 | ........... | f51 | f52 |
Hình I.8: Biểu diễn số có dấu chấm động chính xác kép với 64 bit
Để thuận lợi trong một số phép tính toán, IEEE định nghĩa một số dạng mở rộng của chuẩn IEEE 754:
Tham số | Chính xác đơn | Mở rộngchính xác đơn | Chính xác kép | Mở rộngchính xác kép |
Chiều dài (bit) | 32 | 43 | 64 | 79 |
Chiều dài trường mũ (E) | 8 | 11 | 11 | 15 |
Số thừa | 127 | - | 1023 | - |
Giá trị mũ tối đa | 127 | 1023 | 1023 | 16383 |
Giá trị mũ tối thiểu | -126 | - 1022 | -1022 | -16382 |
Chiều dài trường lẻ F (bit) | 23 | 31 | 52 | 63 |
Chuẩn IEEE 754 cho phép biểu diễn các số chuẩn hoá (các bit của E không cùng lúc bằng 0 hoặc bằng 1), các số không chuẩn hoá (các bit của E không cùng lúc bằng 0 và phần số lẻ f1 f2 ... khác không), trị số 0 (các bit của E không cùng lúc bằng 0 và phần số lẻ bằng không), và các ký tự đặc biệt (các bit của E không cùng lúc bằng 1 và phần lẻ khác không).
Ví dụ các bước biến đổi số thập phân -12.62510 sang số chấm động chuẩn IEEE 754 chính xác đơn (32 bit):
Số âm: bit dấu S có giá trị 1.
Phần mũ E với số thừa K=127, ta có: E-127=3
E = 3 + 127 = 130 (1000 00102).
32 bit
S E FKết quả nhận được:
1 1000 0010 1001 0100 0000 0000 0000 000
Một vài ứng dụng, đặc biệt ứng dụng quản lý, bắt buộc các phép tính thập phân phải chính xác, không làm tròn số. Với một số bit cố định, ta không thể đổi một cách chính xác số nhị phân thành số thập phân và ngược lại. Vì vậy, khi cần phải dùng số thập phân, ta dùng cách biểu diễn số thập phân mã bằng nhị phân (BCD: Binary Coded Decimal) theo đó mỗi số thập phân được mã với 4 số nhị phân (bảng I.6).
Số thập phân | d3 | d2 | d1 | d0 | Số thập phân | d3 | d2 | d1 | d0 |
0 | 0 | 0 | 0 | 0 | 5 | 0 | 1 | 0 | 1 |
1 | 0 | 0 | 0 | 1 | 6 | 0 | 1 | 1 | 0 |
2 | 0 | 0 | 1 | 0 | 7 | 0 | 1 | 1 | 1 |
3 | 0 | 0 | 1 | 1 | 8 | 1 | 0 | 0 | 0 |
4 | 0 | 1 | 0 | 0 | 9 | 1 | 0 | 0 | 1 |
Bảng I.5: Số thập phân mã bằng nhị phân
Để biểu diễn số BCD có dấu, người ta thêm số 0 trước một số dương cần tính, ta có số âm của số BCD bằng cách lấy bù 10 số cần tính.
Ví dụ: biểu diễn số +07910 bằng số BCD: 0000 0111 1001
Bù 91001 0010 0000
+1
Bù 101001 0010 0001
Vây, ta có:Số - 07910 trong cách biểu diễn số BCD: 1001 0010 0001BCD.
Cách tính toán trên tương đương với cách sau:
Tuỳ theo các hệ thống khác nhau, có thể sử dụng các bảng mã khác nhau: ASCII, EBCDIC, UNICODE,....Các hệ thống trước đây thường dùng bảng mã ASCII (American Standard Codes for Information Interchange) để biểu diễn các chữ, số và một số dấu thường dùng mà ta gọi chung là ký tự. Mỗi ký tự được biểu diễn bởi 7 bit trong một Byte. Hiện nay, một trong các bảng mã thông dụng được dùng là Unicode, trong bảng mã này, mỗi ký tự được mã hoá bởi 2 Byte.
Bảng mã EBCDIC
Bảng mã UNICODE
*****
C
Notification Switch
Would you like to follow the 'Cơ sở văn hóa việt' conversation and receive update notifications?