Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
0,93 MB
Nội dung
TH028 – Kiến trúc máy tính và hợp ngữ Bài 2. Biểu diễn số nguyên Lê Trí Anh ltranh@fit.hcmuns.edu.vn Bài giảng có sử dụng tư liệu từ trang http://inst.eecs.berkeley.edu/~cs61c Mụ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 Giá 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 đồng ý thay số 0 bằng chữ z ? 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,… ? Hệ cơ số 10 A = 123 = 100 + 20 + 3 = 1.10 2 + 2.10 1 + 3.10 0 x n-1 …x 1 x 0 = x n-1 .q n-1 + … + x 1 .q 1 + x 0 .q 0 Tổng quát số hệ cơ số q mỗi chữ số x i lấy từ tập X có q phần tử LTA08 q=2, X={0,1} : hệ nhị phân (binary) q=8, X={0,1,2, 7} : hệ bát phân (octal) q=10, X={0,1,2,…9} : hệ thập phân (decimal) q=16, X={0,1,2, 9,A,B, F} : hệ thập lục phân (hexadecimal) A = 123 d = 01111011 b = 173 o = 7B h Hệ 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 x n-1 là bit có giá trị nhất MSB x n-1 …x 1 x 0 = x n-1 .2 n-1 + … + x 1 .2 1 + x 0 .2 0 Phạm vi lưu trữ: từ 0 đến 2 n -1 LTA08 • bit phải nhất x 0 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 = 7h Vậy A = 7Bh 0000 – 0 1000 – 8 0001 – 1 1001 – 9 0010 – 2 1010 – A 0011 – 3 1011 – B 0100 – 4 1100 – C 0101 – 5 1101 – D 0110 – 6 1110 – E 0111 – 7 1111 – F BIG IDEA: Bits can represent anything!! • Characters? – 26 letters 5 bits (2 5 = 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? • MEMORIZE: N bits at most 2 N things Red (00) Green (01) Blue (11) Biểu diễn số âm x n-1 …x 1 x 0 = x n-1 .(-2 n-1 )+ x n-2 .2 n-2 + … + x 1 .2 1 + x 0 .2 0 Phạm vi lưu trữ: từ -2 n-1 đến 2 n-1 -1 Ví dụ Vd: +123 = 01111011b -123 = 10000101b 0 = 00000000b - 1 = 11111111b - 1 = 11111111b -2 = 11111110b -3 = 11111101b -127 = 10000001b -128 = 10000000b Phép dịch bit và phép quay • Shift left (SHL) – Chuyển tất cả các bit sang trái, đánh mất bit trái nhất, thêm 0 ở bit phải nhất • Shift right (SHR) – Chuyển tất cả các bit sang phải, đánh mất bit phải nhất, thêm 0 ở bit trái nhất 11001010 10010100 10010101 01001010 LTA08 nhấ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 AND, 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 AND 0 1 0 0 0 1 0 1 OR 0 1 0 0 1 1 1 1 XOR 0 1 0 0 1 1 1 0 0 1 NOT 1 0 LTA08 1 0 1 1 1 1 1 1 0 11010011 00001111 AND 00000011 00000011 01100000 OR 01100011 01100011 01100011 XOR 00000000 NOT 11010011 = 00101100 [...]... bư c sau) ta có Bư c 0: A = (0 + (Q-1-Q0).M) Bư c 1: A = (0 + (Q-1-Q0).M + (Q0-Q1).M .2) = M.(Q-1-Q0 + Q0 .2- Q1 .2) Bư c 2: A = (M.(Q-1-Q0 + Q0 .2- Q1 .2) + (Q1-Q2).M .22 ) = M.(Q-1-Q0 + Q0 .2- Q1 .2 + Q1 .22 -Q2 .22 ) Bư c 3: 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 ) Cơ s c a thu t toán Bư c n- 1: A = M.(Q-1+Q0+Q1 .2 + Q2 .22 +Q3 .23 +…+Qn -2. 2n -2- Qn-1.2n-1 Vì Q-1=0 và Qn-1... K 21 0 = 1, 024 103 = 1,000 Mega M 22 0 = 1,048,576 106 = 1,000,000 Giga G 23 0 = 1,073,741, 824 109 = 1,000,000,000 Tera T 24 0 = 1,099,511, 627 ,776 10 12 = 1,000,000,000,000 Peta P 25 0 = 1, 125 ,899,906,8 42, 624 1015 = 1,000,000,000,000,000 Exa E 26 0 = 1,1 52, 921 ,504,606,846,976 1018 = 1,000,000,000,000,000,000 Zetta Z 27 0 = 1,180,591, 620 ,717,411,303, 424 1 021 = 1,000,000,000,000,000,000,000 Yotta Y 28 0 = 1 ,20 8, 925 ,819,614, 629 ,174,706,176... New IEC Standard Prefixes [only to exbi officially] Name Abbr Factor kibi Ki 21 0 = 1, 024 mebi Mi 22 0 = 1,048,576 gibi Gi 23 0 = 1,073,741, 824 tebi Ti 24 0 = 1,099,511, 627 ,776 pebi Pi 25 0 = 1, 125 ,899,906,8 42, 624 exbi Ei 26 0 = 1,1 52, 921 ,504,606,846,976 zebi Zi 27 0 = 1,180,591, 620 ,717,411,303, 424 yobi Yi 28 0 = 1 ,20 8, 925 ,819,614, 629 ,174,706,176 • International Electrotechnical Commission (IEC) in 1999 introduced...Ví 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 Phép l y đ i Đ có s đ i, ta l y NOT sau đó c ng vào 1 đơn v 123 = 01111011 NOT( 123 ) = 10000100 + 1 - 123 = 10000101 NOT(0) -0 = 11111111 + 1 = 100000000 S 1s b m t do... bit xác đ nh d u nên ph n trong d u ngo c chính là Q V y A = M.Q Ví d : n=4, M=7, Q=-3 A Q Q-1 M Kh i đ u 0000 1101 0 0111 Bư c 0: A=A-M 1001 1101 0 0111 1100 1110 1 0111 0011 1110 1 0111 0001 1111 0 0111 1010 1111 0 0111 shift 1101 0111 1 0111 Bư c 3: shift 1110 1011 1 0111 shift Bư c 1: A=A+M shift Bư c 2: A=A-M K t qu 11101011 = -21 Phép chia A 0 Qs b chia M s chia kn L p khi k > 0 { d ch trái... 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 en.wikipedia.org/wiki/Binary_prefix LTA08 Bài t p v nhà • Tìm hi u: – Các cách bi u di n s nguyên có d u khác – Các khái ni m: font 1 byte, font 2 bytes, UTF8, UTF-16, mã t h p, mã d ng s n ? LTA08 ... 1,000,000,000,000,000,000,000 Yotta Y 28 0 = 1 ,20 8, 925 ,819,614, 629 ,174,706,176 1 024 = 1,000,000,000,000,000,000,000,000 • Confusing! Common usage of “kilobyte” means 1 024 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 23 0 bytes, and a 1 Mbit/s connection... } C đóng vai trò bit nh [C,A,Q] coi như m t thanh ghi ghép g m 2n+1 bit [C,A] coi như m t thanh ghi ghép g m n+1 bit C i ti n A 0 Q-10 M s th hai Q s th nh t kn L p khi k > 0 { n u 2 bit cu i Q0Q-1 { = 10 thì AA-M = 01 thì AA+M } d ch ph i s h c A,Q,Q-1 k=k-1 } Ý tư ng là thay th m t dãy liên ti p các bit 1 b ng m t hi u d ng 2a-2b C i ti n này cho phép thu t toán ch y đư c v i s có d u QiQi-1... 00110111 + 1011 10001111 Xét bit cu i c aQ M= 1 0 1 1 C A Q 0 0 0 0 0 1 1 0 1 b ng 1 : c ng M M= 1 0 1 1 d ch ph i d ch ph i 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 0 b ng 0 0 0 0 1 0 1 1 1 1 b ng 1 : c ng M M= 1 0 1 1 d ch ph i 0 1 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 M= 1 0 1 1 d ch ph i 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 b ng 1 : c ng M Thu t toán nhân [C,A] 0 M s th hai Q s th nh t kn L p khi k > 0 { . M.(Q -1 -Q 0 + Q 0 .2- Q 1 .2 + Q 1 .2 2 -Q 2 .2 2 ) Bước 3: A = M.(Q -1 -Q 0 + Q 0 .2- Q 1 .2 + Q 1 .2 2 -Q 2 .2 2 + Q 2 .2 3 -Q 3 .2 3 ) = M.(Q -1 +Q 0 +Q 1 .2 + Q 2 .2 2 -Q 3 .2 3 ) Cơ sở của. ta có Bước 0: A = (0 + (Q -1 -Q 0 ).M) Bước 1: A = (0 + (Q -1 -Q 0 ).M + (Q 0 -Q 1 ).M .2) = M.(Q -1 -Q 0 + Q 0 .2- Q 1 .2) Bước 2: A = (M.(Q -1 -Q 0 + Q 0 .2- Q 1 .2) + (Q 1 -Q 2 ).M .2 2 ) = M.(Q -1 -Q 0 +. ? Ex: • locations / addresses? commands? • MEMORIZE: N bits at most 2 N things Red (00) Green (01) Blue (11) Biểu diễn số âm x n-1 …x 1 x 0 = x n-1 .( -2 n-1 )+ x n -2 .2 n -2 + … + x 1 .2 1 +