CHƯƠNG 3BIỂU DIỄN DỮ LIỆU TRONG MÁY TÍNH Nguyễn Văn Thọ Khoa Điện tử viễn thông Đại học Duy Tân – 2010 KHOA ĐIỆN TỬ VIỄN THÔNG Nguyen Van Tho – Duy Tan University.. • add from right to l
Trang 1CHƯƠNG 3
BIỂU DIỄN DỮ LIỆU TRONG MÁY TÍNH
Nguyễn Văn Thọ Khoa Điện tử viễn thông Đại học Duy Tân – 2010
KHOA ĐIỆN TỬ VIỄN THÔNG
Nguyen Van Tho – 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
Trang 2Má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
Digitalsystem:
• finite number of symbols
Nguyen Van Tho – 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:
• representationand operationswithin the computer
• We’ll start with numbers…
Trang 3Unsigned 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
102 101 100
101
22 21 20 3x100 + 2x10 + 9x1 = 329 1x4 + 0x2 + 1x1 = 5
most significant
least significant
Nguyen Van Tho – Duy Tan University.
Unsigned Integers (cont.)
• Một số n-bit kiểu unsigned integer có thể biểu diễn 2 ngiá trị :
từ 0 to 2n-1.
7 1 1 1
6 0 1 1
5 1 0 1
4 0 0 1
3 1 1 0
2 0 1 0
1 1 0 0
0 0 0 0
2 0
2 1
2 2
Trang 4Unsigned Binary Arithmetic
• Base-2 addition – just like base-10!
• add from right to left, propagating carry
10111
carry
Subtraction, multiplication, division,…
Nguyen Van Tho – 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
Trang 5Số 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)
Nguyen Van Tho – 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
11010 (1’s comp) (1’s comp)
Trang 6Two’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
100101111 (1’s comp)
(copy) (flip)
Nguyen Van Tho – 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
7 1 1 1
6 0 1 1
5 1 0 1
4 0 0 1
3 1 1 0
2 0 1 0
1 1 0 0
0 0 0 0
2 0
2 1
2 2
1 1 1 1 1 1 1 1 -2 3
-1 1
1 1
-2 0
1 1
-3 1
0 1
-4 0
0 1
-5 1
1 0
-6 0
1 0
-7 1
0 0
-8 0
0 0
2 0
2 1
2 2
Trang 7Chuyể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.
1024 10 512 9 256 8 128 7 64 6 32 5 16 4 8 3 4 2 2 1 1 0
2n
n
X = 01101000two
= 26+25+23 = 64+32+8
= 104ten
Assuming 8-bit 2’s complement numbers.
Nguyen Van Tho – Duy Tan University.
More Examples
1024 10 512 9 256 8 128 7 64 6 32 5 16 4 8 3 4 2 2 1 1 0
2n
n
Assuming 8-bit 2’s complement numbers.
X = 00100111two
= 25+22+21+20 = 32+4+2+1
= 39ten
X = 11100110two
-X = 00011010
= 24+23+21 = 16+8+2
= 26ten
X = -26ten
Trang 8Chuyể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.
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 = 01101000two 1/2 = 0 r1 bit 6
Nguyen Van Tho – 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.
40 - 32 = 8 bit 5
8 - 8 = 0 bit 3
X = 01101000two
1024 10 512 9 256 8 128 7 64 6 32 5 16 4 8 3 4 2 2 1 1 0
2n
n
Trang 9Phép toán: Số học và Logic
• Recall:
a data type includes representationand 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
Nguyen Van Tho – 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)
Assuming 8-bit 2’s complement numbers.
Trang 10Phé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)
01101000 (104) 11110110 (-10)
Assuming 8-bit 2’s complement numbers.
Nguyen Van Tho – 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)
Trang 11Tràn số
• Nếu 2 toán hạng quá lớn, kết quả phép toán không chính
xác.
• 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.
+ 01001 (9) + 10111 (-9)
10001 (-15) 01111 (+15)
Nguyen Van Tho – Duy Tan University.
Logical Operations
• Operations on logical TRUE or FALSE
• two states takes one bit to represent: TRUE=1, FALSE=0
• View n-bit number as a collection of n logical values
• operation applied to each bit independently
1
1
0
0
A
1 1
0 0
0 1
0 0
A AND B
B
1 1 0 0 A
1 1
1 0
1 1
0 0
A OR B B
1 0 A
0 1 NOT A
Trang 12Examples of Logical Operations
• AND
• useful for clearing bits
¾AND with zero = 0
¾AND with one = no change
• OR
• useful for setting bits
¾OR with zero = no change
¾OR with one = 1
• NOT
• unary operation one argument
• flips every bit
11000101
AND 00001111
00000101
11000101
OR 00001111
11001111
NOT 11000101
00111010
Nguyen Van Tho – Duy Tan University.
Hexadecimal Notation
• It is often 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
7 6 5 4 3 2 1 0
Hex
7 0111
6 0110
5 0101
4 0100
3 0011
2 0010
1 0001
0 0000
Decimal Binary
F E D C B A 9 8
Hex
15 1111
14 1110
13 1101
12 1100
11 1011
10 1010
9 1001
8 1000
Decimal Binary
Trang 13Converting from Binary to Hexadecimal
• Every four bits is a hex digit.
• start grouping from right-hand side
011101010001111010011010111
7 D
4 F
8 A
3
This is not a new machine representation,
just a convenient way to write the number.
Nguyen Van Tho – 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 negative powers of two just like “decimal point.”
• 2’s comp addition and subtraction still work.
¾if binary points are aligned
00101000.101 (40.625)
+ 11111110.110 (-1.25)
00100111.011 (39.375)
2 -1 = 0.5
2 -2 = 0.25
2 -3 = 0.125
No new operations same as integer arithmetic.
Trang 14Số rất lớn và số rất nhỏ : Dấu chấm động (Floating-Point)
• Giá trị lớn : 6.023 x 10 23 cần 79 bits
• Giá trị nhỏ : 6.626 x 10 -34 cần >110 bits
• Đưa về dạng biểu diễn : F x 2 E
• IEEE 754 Floating-Point
¾ Độ chính xác đơn : Single-precision (32-bits)
¾ Độ chính xác kép : Double-precision (64-bits)
Nguyen Van Tho – Duy Tan University.
Dấu chấm động
• IEEE-754 format cho độ chính xác đơn (single-precision)
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 trị : có giá trị giữa 1 và 2 : 1.f
0 22
23 30
31
S biased exponent e fraction f of normalized mantissa
0 exponent ,
2 fraction
0 ) 1
(
254 exponent
1 , 2
fraction
1 ) 1
(
126
127 exponent
=
×
×
−
=
≤
≤
×
×
−
=
−
−
S
S N
N
Trang 15Floating Point Example
• Single-precision IEEE floating point number:
• 10111111010000000000000000000000
• Sign is 1 – number is negative.
• Exponent field is 01111110 = 126 (decimal).
• Fraction is 0.100000000000… = 0.5 (decimal).
• Value = -1.5 x 2 (126-127) = -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
IEEE format: 0011111100110000000000000000000
Nguyen Van Tho – Duy Tan University.
Dấu chấm động
• IEEE-754 format cho độ chính xác kép (double-precision)
0 51
52 62
63
S biased exponent e fraction f of normalized mantissa
1 sign bit: 0 dương, 1 âm
11 bit biased exponent= exponent + 1023
53 bit mantissa chuẩn hoá = 1 bit ẩn + 52 bit fraction
double precision: (-1) s x 2 e-1023 x (1.f) 2 single precision: (-1) s x 2 e-127 x (1.f) 2
Trang 16Text: ASCII Characters
• ASCII: Maps 128 characters to 7-bit code.
• both printable and non-printable (ESC, DEL, …) characters
del 7f o 6f _ 5f O 4f
? 3f / 2f us 1f si
0f
~ 7e n 6e
^ 5e N 4e
>
3e 2e rs 1e so
0e
} 7d m 6d ] 5d M 4d
= 3d -2d gs 1d cr
0d
| 7c l 6c
\ 5c L 4c
<
3c , 2c fs 1c np
0c
{ 7b k 6b [ 5b K 4b
; 3b + 2b esc 1b vt
0b
z 7a j 6a Z 5a J 4a : 3a
* 2a sub 1a nl
0a
y 79 i 69 Y 59 I 49 9 39 ) 29 em 19 ht
09
x 78 h 68 X 58 H 48 8 38 ( 28 can 18 bs
08
w 77 g 67 W 57 G 47 7 37 ' 27 etb 17 bel
07
v 76 f 66 V 56 F 46 6 36
&
26 syn 16 ack
06
u 75 e 65 U 55 E 45 5 35
% 25 nak 15 enq
05
t 74 d 64 T 54 D 44 4 34
$ 24 dc4 14 eot
04
s 73 c 63 S 53 C 43 3 33
# 23 dc3 13 etx
03
r 72 b 62 R 52 B 42 2 32
"
22 dc2 12 stx
02
q 71 a 61 Q 51 A 41 1 31
! 21 dc1 11 soh
01
p 70
` 60 P 50
@ 40 0 30 sp 20 dle 10 nul
00
Nguyen Van Tho – Duy Tan University.
Interesting Properties of ASCII Code
• What is relationship between a decimal digit ('0', '1', …)
and its ASCII code?
• What is the difference between an upper-case letter
('A', 'B', …) and its lower-case equivalent ('a', 'b', …)?
• Given two ASCII characters, how do we tell which comes
first in alphabetical order?
• Are 128 characters enough?
(http://www.unicode.org/)
No new operations integer arithmetic and logic.
Trang 17Other Data Types
• Text strings
• sequence of characters, terminated with NULL (0)
• typically, no hardware support
• Image
• array of pixels
¾monochrome: one bit (1/0 = 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
Nguyen Van Tho – Duy Tan University.