Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
305,09 KB
Nội dung
CHƯƠNG3 BIỂU DIỄN DỮ LIỆU TRONG MÁY TÍNH NguyễnVănThọ Khoa Điện tử viễn thông Đại học Duy Tân – 2010 ĐẠI HỌC DUY TÂN KHOA ĐIỆN TỬ VIỄN THÔNG NguyenVanTho – Duy Tan University. Làm thế nào để biểu diễn trữ dữ liệu trong máy tính ? • Ở cấp thấp nhất, máy tính là 1 thiết bị điện tử • Hoạt động bằng cách điều khiển các dòng điện tử • works by controlling the flow of electrons • Có 2 trạng thái 1. Có điện áp : gọi là trạng thái ‘1” 2. Không có điện áp : gọi là trạng thái “0” • Có thế xác định trạng thái “0” hay “1” dựa vào giá trị điện áp NguyenVanTho – Duy Tan University. Máy tính là một hệ thống số. • Đơn vị cơ sở của thông tin là số nhị phân (bit) • Tổ hợp nhiều bit sẽ cho nhiều trạng thái hơn • Tổ hợp của 2 bit cho ta 4 trạng thái : 00, 01, 10, 11 • Tổ hợp của 3 bit cho ta 8 trạng thái: 000, 001, 010, 011, 100, 101, 110, 111 • Tổ hợp của n bits cho ta 2 n trạng thái. Binary (base two) system: • has two states: 0 and 1 Digital system: • finite number of symbols NguyenVanTho – Duy Tan University. Các loại dữ liệu cần biểu diễn? • Numbers – signed, unsigned, integers, floating point, complex, rational, irrational, … • Text – characters, strings, … • Images – pixels, colors, shapes, … • Sound • Logical – true, false • Instructions • … • Data type: • representation and operations within the computer • We’ll start with numbers… NguyenVanTho – Duy Tan University. Unsigned Integers (Số nguyên không dấu) • Trọng số của vị trí • Vídụ ký hiệu “329”trong hệ thập phân • “3” có gía trị là 300 trong khi “9” chỉ là 9 329 10 2 10 1 10 0 101 2 2 2 1 2 0 3x100 + 2x10 + 9x1 = 329 1x4 + 0x2 + 1x1 = 5 most significant least significant NguyenVanTho – Duy Tan University. Unsigned Integers (cont.) • Một số n-bit kiểu unsigned integer có thể biểu diễn 2 n giá trị : từ 0to 2 n -1. 7111 6011 5101 4001 3110 2010 1100 0000 2 0 2 1 2 2 NguyenVanTho – Duy Tan University. Unsigned Binary Arithmetic • Base-2 addition – just like base-10! • add from right to left, propagating carry 10010 10010 1111 + 1001 + 1011 +1 11011 11101 10000 10111 + 111 carry Subtraction, multiplication, division,… NguyenVanTho – Duy Tan University. Signed Integers (Số nguyên có dấu) • Với n bits, ta có 2 n giá trị . • Sử dụng 1 nửa cho số dương (1 through 2 n-1 ) và 1 nửa cho số âm (- 2 n-1 through -1) • that leaves two values: one for 0, and one extra • Số nguyên dương • Bit MSB là bit 0 00101 = 5 • Số nguyên âm • Kiểu dấu-độ lớn : bít dấu =1 để biểu diễn số âm, độ lớn biểu diễn như số không dấu 10101 = -5 • Số bù 1 – flip every bit to represent negative 11010 = -5 • Trong cả 2 trường hợp , MSB biễu diễn dấu: 0=dương, 1=âm NguyenVanTho – Duy Tan University. Số bù 2 • Hạn chế của 2 cách biểu diễn trên • Có 2 cách biểu diễn số 0 (+0 and –0) • Mạch tính toán phức tạp ¾ Làm thế nào để công 1 số có dấu và 1 số không dấu ? – Ví dụ : 2 + (-3) • Biểu diễn bằng số bù 2 giúp phát triển mạch số học dễ dàng hơn. • Với mỗi số dương (X) , chỉ có 1 giá trị âm (-X) thoã mãn X+ (-X) =0 với phép cộng bình thường (bỏ qua bit nhớ ngoài) 00101 (5) 01001 (9) + 11011 (-5) + (-9) 00000 (0) 00000 (0) NguyenVanTho – Duy Tan University. Biểu diễn số bù 2 • Nếu là số nguyên dương hoặc số 0 • Biểu diễn số nhị phân bình thường • Nếu là số âm • Bắt đầu với số dương tương ứng • Tính số bù 1 của số dương tương ứng (đảo bit) • Số bù 2 = Số bù 1 + 1 00101 (5) 01001 (9) 11010 (1’s comp) (1’s comp) +1 +1 11011 (-5) (-9) NguyenVanTho – Duy Tan University. Two’s Complement Shortcut • To take the two’s complement of a number: • copy bits from right to left until (and including) the first “1” • flip remaining bits to the left 011010000 011010000 100101111 (1’s comp) +1 100110000 100110000 (copy)(flip) NguyenVanTho – Duy Tan University. Two’s Complement Signed Integers • MSB là bit dấu–nócótrọng số là –2 n-1 . • Phạm vi biểu diễn của số n-bit là : -2 n-1 tới 2 n-1 –1. • The most negative number (-2 n-1 ) has no positive counterpart. 0 0 0 0 0 0 0 0 -2 3 7111 6011 5101 4001 3110 2010 1100 0000 2 0 2 1 2 2 1 1 1 1 1 1 1 1 -2 3 -1111 -2011 -3101 -4001 -5110 -6010 -7100 -8000 2 0 2 1 2 2 NguyenVanTho – Duy Tan University. Chuyển đổi từ hệ 2 (Binary) sang hệ 10 (Decimal) 1. If leading bit is one, take two’s complement to get a positive number. 2. Add powers of 2 that have “1” in the corresponding bit positions. 3. If original number was negative, add a minus sign. 102410 5129 2568 1287 646 325 164 83 42 21 10 2 n n X = 01101000 two =2 6 +2 5 +2 3 = 64+32+8 = 104 ten Assuming 8-bit 2’s complement numbers. NguyenVanTho – Duy Tan University. More Examples 102410 5129 2568 1287 646 325 164 83 42 21 10 2 n n Assuming 8-bit 2’s complement numbers. X = 00100111 two =2 5 +2 2 +2 1 +2 0 = 32+4+2+1 =39 ten X = 11100110 two -X = 00011010 =2 4 +2 3 +2 1 = 16+8+2 =26 ten X = -26 ten NguyenVanTho – Duy Tan University. Chuyển đổi từ hệ 10 sang hệ 2 • First Method: Division 1. Find magnitude of decimal number. (Always positive.) 2. Divide by two – remainder is least significant bit. 3. Keep dividing by two until answer is zero, writing remainders from right to left. 4. Append a zero as the MS bit; if original number was negative, take two’s complement. X = 104 ten 104/2 = 52 r0 bit 0 52/2 = 26 r0 bit 1 26/2 = 13 r0 bit 2 13/2 = 6 r1 bit 3 6/2 = 3 r0 bit 4 3/2 = 1 r1 bit 5 X = 01101000 two 1/2 = 0 r1 bit 6 NguyenVanTho – Duy Tan University. Chuyển đổi từ hệ 10 sang hệ 2 • Second Method: Subtract Powers of Two 1. Find magnitude of decimal number. 2. Subtract largest power of two less than or equal to number. 3. Put a one in the corresponding bit position. 4. Keep subtracting until result is zero. 5. Append a zero as MS bit; if original was negative, take two’s complement. X = 104 ten 104 - 64 = 40 bit 6 40 - 32 = 8 bit 5 8 - 8 = 0 bit 3 X = 01101000 two 102410 5129 2568 1287 646 325 164 83 42 21 10 2 n n NguyenVanTho – Duy Tan University. Phép toán: Số học và Logic • Recall: a data type includes representation and operations. • We now have a good representation for signed integers, so let’s look at some arithmetic operations: • Addition • Subtraction • Sign Extension • We’ll also look at overflow conditions for addition. • Multiplication, division, etc., can be built from these basic operations. • Logical operations are also useful: • AND • OR • NOT NguyenVanTho – Duy Tan University. Phép cộng • As we’ve discussed, 2’s comp. addition is just binary addition. • assume all integers have the same number of bits • ignore carry out • for now, assume that sum fits in n-bit 2’s comp. representation 01101000 (104) 11110110 (-10) + 11110000 (-16) + (-9) 01011000 (98) (-19) Assuming 8-bit 2’s complement numbers. NguyenVanTho – Duy Tan University. Phép trừ • Negate subtrahend (2nd no.) and add. • assume all integers have the same number of bits • ignore carry out • for now, assume that difference fits in n-bit 2’s comp. representation 01101000 (104) 11110110 (-10) - 00010000 (16) - (-9) 01101000 (104) 11110110 (-10) + 11110000 (-16) + (9) 01011000 (88) (-1) Assuming 8-bit 2’s complement numbers. NguyenVanTho – Duy Tan University. Chú ý với số có dấu • Để cộng 2 số, ta phải biểu diễn số đó dưới dạng các số nhị phân có số bit như nhau. • Thêm 0 vào bên trái để đủ số bit • Instead, replicate the MS bit the sign bit: 4-bit 8-bit 0100 (4) 00000100 (still 4) 1100 (-4) 00001100 (12, not -4) 4-bit 8-bit 0100 (4) 00000100 (still 4) 1100 (-4) 11111100 (still -4) [...]... 7-bit code • both printable and non-printable (ESC, DEL, …) characters 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f nul soh stx etx eot enq ack bel bs ht nl vt np cr so si 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f dle dc1 dc2 dc3 dc4 nak syn etb can em sub esc fs gs rs us 20 sp 30 21 ! 31 22 " 32 23 # 33 24 $ 34 25 % 35 26 & 36 27 ' 37 28 ( 38 29 ) 39 2a * 3a 2b + 3b 2c , 3c 2d - 3d 2e 3e... aligned 2-1 = 0.5 2-2 = 0.25 2 -3 = 0.125 00101000.101 (40.625) + 11111110.110 (-1 .25) 00100111.011 (39 .37 5) No new operations same as integer arithmetic 7 NguyenVanTho – Duy Tan University Số rất lớn và số rất nhỏ : Dấu chấm động (Floating-Point) • Giá trị lớn : 6.0 23 x 10 23 cần 79 bits • Giá trị nhỏ : 6.626 x 10 -3 4 cần >110 bits • Đưa về dạng biểu diễn : F x 2E • IEEE 754 Floating-Point Độ... Floating-Point Độ chính xác đơn : Single-precision (32 -bits) Độ chính xác kép : Double-precision (64-bits) NguyenVanTho – Duy Tan University Dấu chấm động • IEEE-754 format cho độ chính xác đơn (single-precision) 31 30 S 23 22 biased exponent e 0 fraction f of normalized mantissa 1 sign bit: 0 dương, 1 âm 8 bit biased exponent= exponent + 127 24 bit mantissa chuẩn hoá = 1 bit ẩn + 23 bit fraction Chuẩn hoá định... Tho – Duy Tan University Dấu chấm động • IEEE-754 format cho độ chính xác kép (double-precision) 63 S 62 52 biased exponent e 51 0 fraction f of normalized mantissa 1 sign bit: 0 dương, 1 âm 11 bit biased exponent= exponent + 10 23 53 bit mantissa chuẩn hoá = 1 bit ẩn + 52 bit fraction single precision: double precision: (-1 )s x 2e-127 x (1.f)2 (-1 )s x 2e-10 23 x (1.f)2 NguyenVanTho – Duy Tan University... Point Example • Single-precision IEEE floating point number: • 10111111010000000000000000000000 sign exponent fraction • Sign is 1 – number is negative • Exponent field is 01111110 = 126 (decimal) • Fraction is 0.100000000000… = 0.5 (decimal) • Value = -1 .5 x 2(12 6-1 27) = -1 .5 x 2-1 = -0 .75 Ví dụ: biểu diễn 0.1011 dưới dạng IEEE-754 Sign bit s=0 chuẩn hoá : 0.1011=1.011* 2-1 exponent: -1 + 127=126=01111110... 38 29 ) 39 2a * 3a 2b + 3b 2c , 3c 2d - 3d 2e 3e 2f / 3f 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f @ A B C D E F G H I J K L M N O 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f P Q R S T U V W X Y Z [ \ ] ^ _ 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f ` a b c d e f g h i j k l m n o 70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w 78 x 79 y 7a z 7b { 7c | 7d } 7e... convenient to write binary (base-2) numbers as hexadecimal (base-16) numbers instead • fewer digits four bits per hex digit • less error prone easy to corrupt long string of 1’s and 0’s Binary Hex Decimal Binary Hex Decimal 0000 0001 0010 0011 0100 0101 0110 0111 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 1000 1001 1010 1011 1100 1101 1110 1111 8 9 A B C D E F 8 9 10 11 12 13 14 15 NguyenVanTho – Duy Tan... = black/white) color: red, green, blue (RGB) components (e.g., 8 bits each) other properties: transparency • hardware support: typically none, in general-purpose processors MMX multiple 8-bit operations on 32 -bit word • Sound • sequence of fixed-point numbers NguyenVanTho – Duy Tan University ... (9) 10001 (-1 5) 11000 (-8 ) + 10111 (-9 ) 01111 (+15) • Tràn số xảy ra nếu • Dấu của 2 toán hạng giống nhau và • Dấu của kết quả khác dấu 2 toán hạng NguyenVanTho – Duy Tan University Logical Operations • Operations on logical TRUE or FALSE • two states takes one bit to represent: TRUE=1, FALSE=0 A B 0 0 0 1 1 0 1 1 A AND B 0 0 0 1 A B 0 0 0 1 1 0 1 1 A OR B 0 1 1 1 A 0 1 NOT A 1 0 • View n-bit number... Converting from Binary to Hexadecimal • Every four bits is a hex digit • start grouping from right-hand side 011101010001111010011010111 3 A 8 F 4 D This is not a new machine representation, just a convenient way to write the number NguyenVanTho – Duy Tan University Số thập phân : Dấu chấm tĩnh (Fixed-Point) • Làm thế nào để biễu diễn số thập phân? • Use a “binary point” to separate positive from