Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 41 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
Con người sử dụng
Máy tính sử dụng
Dùng để viết gọn số nhị phân
10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
00...000 = 0
472 : 10 = 47 dư 2
47 : 10 = 4 dư 7
4 : 10 = 0 dư 4
2 chữ số nhị phân: 0 và 1
Bit là đơn vị thơng tin nhỏ nhất
Có một số nhị phân A như sau:
A = anan-1...a1a0.a-1...a-m
Giá trị của A được tính như sau:
<i>A = an2n + an-12n-1 +...+ a020 + a-12-1 +...+ a-m2-m</i>
Ví dụ:
<b>1101001.1 0 1 1(2)</b>
<b>6543210-1-2-3-4</b>
= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4
<b>BIT (BInary digiT) : </b>
<b>0 1 </b>
<b>BYTE = tổ hợp 8 bit : </b>
<b>01001101 11111111 </b>
<b>WORD = tổ hợp nhiều bit : </b>
<b>10110 1011100101 </b>
Mọi dữ liệu đưa vào máy tính đều được mã hố
thành số nhị phân
Các loại dữ liệu
Dữ liệu nhân tạo: do con người quy ước
Dữ liệu số nguyên: mã hoá theo một số chuẩnqui ước
Dữ liệu số thực: mã hoá bằng số dấu chấm động
Dữ liệu ký tự: mã hoá theo bộ mã ký tự
<b>⇒ cần phải biết thứ tự lưu trữ các byte trong bộ nhớ </b>
Có 2 cách lưu trữ:
Lưu trữ đầu nhỏ (Little-endian): Byte thấp được lưu trữ ở
ngăn nhớ có địa chỉ nhỏ hơn, byte cao được lưu trữ ở
ngăn nhớ có địa chỉ lớn hơn.
Lưu trữ đầu to (Big-endian): Byte cao được lưu trữ ở ngăn
nhớ có địa chỉ nhỏ hơn, byte thấp được lưu trữ ở ngăn
nhớ có địa chỉ lớn hơn.
Intel 80x86 và các Pentium Little-endian⇒
Có hai loại số nguyên:
Số ngun khơng dấu (Unsigned Integer)
Số ngun có dấu (Signed Integer)
Biểu diễn số nguyên không dấu
Dùng n bit biểu diễn số nguyên không dấu A:
an-1an-2…..a2a1a0
Giá trị của A được tính như sau:
Dải biểu diễn của A: 0 -:- 2n-1
Số 8 bit có giá trị : 0 ÷ 255
Số 16 bit có giá trị : 0 ÷ 65 535
Số 32 bit có giá trị : 0 ÷ 4 294 967 295
0000 0000 = 0 <i><b>Chú ý:</b></i>
0000 0001 = 1 1111 1111
0000 0010 = 2 + 0000 0001
0000 0011 = 3 1 0000 0000
… Vậy: 255 + 1 = 0?
Số bù một và Số bù hai
Giả sử A là một số nhị phân, ta có:
Số bù một của A nhận được bằng cách đảo giá trị các bit
của A
(Số bù hai của A) = (Số bù một của A) + 1
Ví dụ: với n= 8 bit
Giả sử có A = 0010 0101
Số bù một của A = 1101 1010
+ 1
Số bù hai của A = 1101 1011
Vì A + (Số bù hai của A) = 0
Dùng n bit biểu diễn số nguyên có dấu A:
Qui ước: chọn bit có trọng số cao nhất (MSB) làm
bit dấu
Với A là số dương: bit a<sub>n-1</sub> = 0, các bit còn lại biểu diễn
độ lớn như số không dấu
Với A là số âm: được biểu diễn bằng số bù hai của số
Dạng tổng quát của số nguyên A:
<i>an-1an-2…a2a1a0</i>
Giá trị của A được xác định như sau:
Dải biểu diễn: -2n-1 ÷ 2n-1-1
Số 8 bit có dấu có giá trị : -128 ÷ +127
Số 16 bit có dấu có giá trị : -32768 ÷ +32767
1
Biểu diễn được các giá trị từ -128 đến +127
0000 0000 = 0
0000 0001 = +1
0000 0010 = +2 Chú ý:
0000 0011 = +3 +127 + 1 = -128
… -128 - 1 = +127
0111 1111 = +127 <sub> do tràn xảy ra</sub>
1000 0000 = - 128
1000 0001 = - 127
…
1111 1110 = -2
Đối với số dương:
+19 = 0001 0011 (8 bit)
+19 = 0000 0000 0001 0011 (16 bit)
thêm 8 bit 0 bên trái
Đối với số âm:
- 19 = 1110 1101 (8 bit)
- 19 = 1111 1111 1110 1101 (16 bit)
thêm 8 bit 1 bên trái
Với n=32 bit: biểu diễn từ -231 đến 231-1
Số BCD được dùng để tính tốn trên số thập phân
trong hệ nhị phân.
Số BCD là số viết theo hệ 16 nhưng giá trị tính theo
hệ 10.
Số 12<sub>BCD</sub> được viết trong hệ 2 là 0001 0010 nhưng có giá
trị là 12 thay vì 18 (1216= 1810).
Dùng 4 bit để mã hoá cho các chữ số thập phân từ 0 đến 9
0 0000 3 0011 6 0110 9 1001
1 0001 4 0100 7 0111
2 0010 5 0101 8 1000
Có 6 tổ hợp khơng sử dụng:
Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp
của mỗi byte.
Ví dụ: Số 35 được lưu trữ 2 byte:
0011 0101
Hai số BCD được lưu trữ trong 1 byte.
Ví dụ: số 35 được lưu trữ 1 byte:
Phép cộng
Phép đảo dấu
Phép đảo dấu trong máy tính thực chất là lấy bù 2
Phép trừ
Nhân số nguyên
không dấu
có dấu
Thuật tốn nhân nhanh Booth
Chia số nguyên
không dấu
Số chấm động (floating point) dùng để tính tốn trên
số thực.
một số thực X được biểu diễn theo kiểu số dấu chấm động
như sau:
X = ± m * B±e
m là phần định trị (Mantissa),
B là cơ số (base),
e là phần mũ (Exponent).
<b>m (mantissa) quyết định độ chính xác </b>
<b>B (base) </b>
Khó xử lý
Chính xác đơn
32 bit, độ lệch mũ (bias) 127
Cơng thức tính giá trị X = (-1)S x 1.m x 2e-127
Chính xác kép
64 bit, độ lệch mũ (bias) 1023
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
Do ANSI (American National Standard Institute)
thiết kế
Bộ mã 8 bit có thể mã hóa được 28 =256 ký tự,
có mã từ: 0016 ÷ FF16 , trong đó:
128 ký tự chuẩn, có mã từ 0016 ÷ 7F16
128 ký tự mở rộng, có mã từ 8016 ÷ FF16
Các ký tự chuẩn
26 chữ cái hoa ‘A’ đến ‘Z’ có mã từ 4116 đến 5A16 (65 đến 90)
‘A’ 0100 0001 = 41 <sub>16</sub>
‘B’ 0100 0010 = 42 <sub>16</sub>
...
‘Z’ 0101 1010 = 5A <sub>16</sub>
26 chữ cái thường ‘a’ đến ‘z’ có mã từ 61<sub>16 </sub>đến 7A<sub>16</sub> (97 đến 122)
‘a’ 0110 0001 = 61 <sub>16</sub>
‘b’ 0110 0010 = 62 <sub>16</sub>
...
‘z’ 0111 1010 = 7A <sub>16</sub>
10 chữ số thập phân từ 0 đến 9 có mã từ 30<sub>16</sub> đến 39<sub>16</sub> (48 đến 57)
‘0’ 0011 0000 = 30 <sub>16</sub>
‘1’ 0011 0001 = 31 <sub>16</sub>
...