1) Với số nguyên có dấu: tất cả trường hợp có bit cao nhất là 1 thì là số âm (trừ cách biểu diễn bằng hằng số thừa k)
với 8 bits thì có thể biểu diễn từ -127 đến 127
vd -127: 11111111 và 127: 01111111. đối với số 0 có 2 cách biểu diễn là 10000000 và 00000000
a) biểu diễn bằng trị td và dấu
bit d(n-1) là bit dấu và bit d0-bit số 1 đến d(n-2) là bit cho giá trị tuyệt đối
với d(n-1) là bit số 8 và bit d(n-0) là bit số 1 đối với 8 bit
để tính kết quả dùng công thức:
b) biểu diễn bằng hằng số bù 1
đảo tất cả các bit có được từ số dương lại ta được số âm với 7 bit đầu là dành cho số tuyệt đối
vd 1 byte lớn nhất và nhỏ nhất là 127(01111111) và -127 (100000000)
có 2 cách biểu diễn 0 là 00000000 và 11111111
c) biểu diễn bằng mã bù 2
lấy mã bù 1 rồi cộng thêm 1 đơn vị
d) bằng hằng số thừa k
Trong cách này, số dương của một số N có được bằng cách “cộng thêm vào” số thừa K được chọn sao cho tổng của K và một số âm bất kỳ luôn luôn dương. Số âm -N của số N có được bằng cáck lấy K-N (hay lấy bù hai của số vừa xác định).
Ví dụ: (số thừa K=128(10000000), số “được cộng thêm vào” 128 là một số nguyên dương. Số âm là số lấy bù hai số vừa tính, bỏ qua số giữ của bit cao nhất) :
+25 =10000000 +00011001 = 10011001 -25 =10000000 - 00011001 = 01100111
- Dùng 1 Byte (8 bit) để biểu diễn một số có dấu lớn nhất là +127 và số nhỏ nhất là –128
- Chỉ có một giá trị 0: +0 = 100000002, -0 = 100000002
2) biểu diễn số thực bằng dấu chấm động với f là phần lẻ, E là phần mũ với chuẩn IEE754
Chiều dài số: 32 bit được chia thành các trường: dấu S (Sign bit - 1 bit), mũ E (Exponent - 8 bit), phần lẻ F (Fraction - 23 bit).
Số này tương ứng với số thực (-1)S * (1,f1 f2 ..... f23) * 2(E - 127)Chiều dài số: 64 bit được chia thành các trường: dấu S (Sign bit - 1 bit), mũ E (Exponent - 11 bit), phần lẻ F (Fraction - 52 bit)
Số này tương ứng với số thực (-1)S * (1,f1 f2 ..... f52) * 2(E - 1023)
Ví dụ các bước biến đổi số thập phân -12.625 sang số chấm động chuẩn IEEE754 chính xác đơn (32 bit):
Comments
Post a Comment