Thuật toán nhân... Cơ sở của thuật toán... Kilo, Mega, Giga, Tera, Peta, Exa, Zetta, Yotta• Common use prefixes all SI, except K [= k in SI] Name Abbr Factor SI size • Confusing!. Common
Trang 2Mục tiêu
• Sau bài này, SV có khả năng:
– Mô tả cách biểu diễn số nguyên không dấu và
có dấu ở dạng số nhị phân bù 2 – Chuyển đổi qua lại giữa các hệ cơ số 2,10,16 – Mô tả cách thực hiện những phép toán số học
LTA08
– Mô tả cách thực hiện những phép toán số học
Trang 3Giá trị & biểu diễn
• Giả sử không dùng các con số làm sao để diễn tả một lượng nào đó ?
• Điều gì xảy ra nếu tất cả mọi người đều
LTA08
• Cái gì là cơ sở chung của các hệ thống số 1,2,3,4… và I,II,III,IV,… ?
Trang 5Hệ nhị phân
• được dùng nhiều trong máy tính
• n gọi là chiều dài bit của số đó
• bit trái nhất xn-1 là bit có giá trị nhất MSB
xn-1…x1x0 = xn-1 2n-1 + … + x1 21 + x0 20
Phạm vi lưu trữ: từ 0 đến 2n-1
LTA08
• bit phải nhất x0 là bit ít giá trị nhất LSB
Để chuyển đổi từ hệ 2 sang hệ 16, chỉ cần gom từng nhóm 4 bit
Ví dụ: A = 01111011 b
4 bit cuối 1011b = Bh
4 bit đầu 0111b = 7hVậy A = 7Bh
Trang 6BIG IDEA: Bits can represent anything!!
• Characters?
– 26 letters 5 bits (25 = 32)– upper/lower case + punctuation 7 bits (in 8) (“ASCII”)
– all the world’s languages 8,16,32 bits (“Unicode”)
LTA08
• Logical values?
0 False, 1 True
• colors ? Ex:
• locations / addresses? commands?
Red (00) Green (01) Blue (11)
Trang 7Biểu diễn số âm
xn-1…x1x0 = xn-1.(- 2n-1)+ xn-2 2n-2 + … + x1 21 + x0 20
Phạm vi lưu trữ: từ -2n-1 đế n 2n-1-1
Trang 8Ví dụ
Vd: +123 = 01111011b
-123 = 10000101b
0 = 00000000b -1 = 11111111b -2 = 11111110b -3 = 11111101b -127 = 10000001b -128 = 10000000b
Trang 9nhất, thêm 0 ở bit trái nhất
• Quay trái (ROL)
– Chuyển tất cả các bit sang trái, bit trái nhất thành bit phải nhất
• Quay phải (ROR)
– Chuyển tất cả các bit sang phải, bit phải nhất thành bit trái nhất
10010101 11001010
11001010 10010101
Trang 10AND, OR, NOT, XOR
• Các phép này giống như các phép toán logic, được thực hiện trên từng bit
LTA08
1 0 1 1 1 1 1 1 0
11010011
00001111AND
00000011
00000011
01100000OR
01100011
01100011
01100011XOR
00000000
NOT 11010011
= 00101100
Trang 11Ví dụ
X = 00001000 b = 8 d
X shl 2 = 00100000 b = 32 d(X shl 2) or X = 00101000 b = 40 d
Y = 01001010 b = 74 d((Y and 0Fh) shl 4) = 10100000
or
((Y and F0h) shr 4) = 00000100
= 10100100 b = 164 d = -92d
Trang 12Phép lấy đối
Để có số đối, ta lấy NOT sau đó cộng vào 1 đơn vị
123 = 01111011NOT(123) = 10000100
+ 1 -123 =10000101
NOT(0) = 11111111
+ 1 -0 =100000000 Số 1 sẽ bị mất do độ dài bit là 8
Trang 13Phép cộng
Trang 14Phép trừ
Trang 17Thuật toán nhân
Trang 18Cải tiến này cho phép thuật toán chạy được với số có
QiQi-1 A thay đổi
00 không thay đổi
01 A=A+M
10 A=A-M
11 không thay đổi
Trang 19Cơ sở của thuật toán
Nghĩa là tại bước thứ i thì A = ( A + (Q i-1 -Q i )M )
Kết hợp với phép dịch phải (thực chất là nhân đôi của giá trị sắp cộng thêm ở bước sau) ta có
A = M.(Q-1-Q0 + Q0.2-Q1.2 + Q1.22-Q2.22 + Q2.23-Q3.23)
= M.(Q-1+Q0+Q1.2 + Q2.22-Q3.23)
Trang 20Cơ sở của thuật toán
Trang 21Ví dụ: n=4, M=7, Q=-3
A Q Q-1 MKhởi đầu 0000 1101 0 0111Bước 0: A=A-M 1001 1101 0 0111
shift 1100 1110 1 0111Bước 1: A=A+M 0011 1110 1 0111
shift 0001 1111 0 0111Bước 2: A=A-M 1010 1111 0 0111
shift 1101 0111 1 0111Bước 3: shift 1110 1011 1 0111
Kết quả 11101011 = -21
Trang 23Ví dụ
Trang 24Kilo, Mega, Giga, Tera, Peta, Exa, Zetta, Yotta
• Common use prefixes (all SI, except K [= k in SI])
Name Abbr Factor SI size
• Confusing! Common usage of “kilobyte” means
1024 bytes, but the “correct” SI value is 1000 bytes
• Hard Disk manufacturers & Telecommunications are the only
computing groups that use SI factors, so what is advertised as a
30 GB drive will actually only hold about 28 x 2 30 bytes, and a
1 Mbit/s connection transfers 10 6 bps.
Exa E 2 60 = 1,152,921,504,606,846,976 10 18 = 1,000,000,000,000,000,000
Zetta Z 2 70 = 1,180,591,620,717,411,303,424 10 21 = 1,000,000,000,000,000,000,000 Yotta Y 2 80 = 1,208,925,819,614,629,174,706,176 10 24 = 1,000,000,000,000,000,000,000,000
physics.nist.gov/cuu/Units/binary.html
Trang 25kibi, mebi, gibi, tebi, pebi, exbi, zebi, yobi
• New IEC Standard Prefixes [only to exbi officially]
Name Abbr Factor
kibi Ki 2 10 = 1,024 mebi Mi 2 20 = 1,048,576 gibi Gi 2 30 = 1,073,741,824 tebi Ti 2 40 = 1,099,511,627,776 pebi Pi 2 50 = 1,125,899,906,842,624 exbi Ei 2 60 = 1,152,921,504,606,846,976
LTA08
• International Electrotechnical Commission (IEC) in 1999 introduced these to specify binary quantities.
– Names come from shortened versions of the original SI prefixes
(same pronunciation) and bi is short for “binary”, but pronounced
“bee” :-(
– Now SI prefixes only have their base-10 meaning and never have
a base-2 meaning.
exbi Ei 2 60 = 1,152,921,504,606,846,976 zebi Zi 2 70 = 1,180,591,620,717,411,303,424 yobi Yi 2 80 = 1,208,925,819,614,629,174,706,176
en.wikipedia.org/wiki/Binary_prefix