chapter 2 bits, data types, and operations. 2-2 hexadecimal notation it is often convenient to write...

16
Chapter 2 Bits, Data Types, and Operations

Upload: colin-barnett

Post on 01-Jan-2016

239 views

Category:

Documents


5 download

TRANSCRIPT

Chapter 2Bits, Data Types,and Operations

2-2

Hexadecimal NotationIt is often convenient to write binary (base-2) numbersas 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 Decimal0000 0 0

0001 1 1

0010 2 2

0011 3 3

0100 4 4

0101 5 5

0110 6 6

0111 7 7

Binary Hex Decimal1000 8 8

1001 9 9

1010 A 10

1011 B 11

1100 C 12

1101 D 13

1110 E 14

1111 F 15

2-3

Converting from Binary to HexadecimalEvery four bits is a hex digit.

• start grouping from right-hand side

011101010001111010011010111

7D4F8A3

This is not a new machine representation,just a convenient way to write the number.

Converting from Hexadecimal to BinaryHexadecimal to binary conversion:

Remember that hex is a 4-bit representation.

2-4

FA91hex or xFA91

F A 9 11111 1010 1001 0001

2DEhex or x2DE

2 D E0010 1011 1100

Convert Hexadecimal to DecimalHexadecimal to decimal is performed the same as binary

to decimal, positional notation.• Binary to decimal uses base 2• Decimal is base 10• Hexadecimal is base 16

2-5

3AF4hex = 3x163 + Ax162 + Fx161 + 4x160

= 3x163 + 10x162 + 15x161 + 4x160

= 3x4096 + 10x256 + 15x16 + 4x1= 12,288 + 2,560 + 240 + 4

= 19,092ten

2-6

Fractions: Fixed-PointHow can we represent fractions?

• Use a “binary point” to separate positivefrom 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.

2-7

Fractions: Fixed-PointHow is -6 5/8 represented in the floating point data type?

• Break problem into two partsWhole: 6 = 1x22 + 1x21 + 0x20 => 110Fraction: 5/8 = ½ (4/8) + 1/8 => 1x2-1 + 0x2-2 + 1x2-3 = .101

-6 5/8 ten = - 110.101two

2-8

Very Large and Very Small: Floating-PointLarge values: 6.023 x 1023 -- requires 79 bits

Small values: 6.626 x 10-34 -- requires >110 bits

Use equivalent of “scientific notation”: F x 2E

Need to represent F (fraction), E (exponent), and sign.

IEEE 754 Floating-Point Standard (32-bits):

S Exponent Fraction

1b 8b 23b

0exponent,2fraction.0)1(

254exponent1,2fraction.1)1(126

127exponent

S

S

N

N

2-9

Floating Point ExampleSingle-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.

sign exponent fraction

2-10

Floating Point ExampleSingle-precision IEEE floating point number:

00111111110010000000000000000000

• Sign is 0 – number is positive.• Exponent field is 01111111 = 127 (decimal).• Fraction is 0.100100000000… = 0.5625 (decimal).

Value = 1.5625 x 2(127-127) = 1.5625 x 20 = 1.5625.

sign exponent fraction

2-11

Floating Point ExampleSingle-precision IEEE floating point number:

00000000011110000000000000000000

• Sign is 0 – number is positive.• Exponent field is 00000000 = 0 (decimal) special case.• Fraction is 0.111100000000… = 0.9375 (decimal).

Value = 0.9375 x 2(-126) = = 0.9375 x 2-126.

sign exponent fraction

2-12

Text: ASCII CharactersASCII: Maps 128 characters to 7-bit code.

• both printable and non-printable (ESC, DEL, …) characters

00 nul10 dle20 sp 30 0 40 @ 50 P 60 ` 70 p01 soh11 dc121 ! 31 1 41 A 51 Q 61 a 71 q02 stx12 dc222 " 32 2 42 B 52 R 62 b 72 r03 etx13 dc323 # 33 3 43 C 53 S 63 c 73 s04 eot14 dc424 $ 34 4 44 D 54 T 64 d 74 t05 enq15 nak25 % 35 5 45 E 55 U 65 e 75 u06 ack16 syn26 & 36 6 46 F 56 V 66 f 76 v07 bel17 etb27 ' 37 7 47 G 57 W 67 g 77 w08 bs 18 can28 ( 38 8 48 H 58 X 68 h 78 x09 ht 19 em 29 ) 39 9 49 I 59 Y 69 i 79 y0a nl 1a sub2a * 3a : 4a J 5a Z 6a j 7a z0b vt 1b esc2b + 3b ; 4b K 5b [ 6b k 7b {0c np 1c fs 2c , 3c < 4c L 5c \ 6c l 7c |0d cr 1d gs 2d - 3d = 4d M 5d ] 6d m 7d }0e so 1e rs 2e . 3e > 4e N 5e ^ 6e n 7e ~0f si 1f us 2f / 3f ? 4f O 5f _ 6f o 7f del

2-13

Interesting Properties of ASCII CodeWhat is relationship between a decimal digit ('0', '1', …)and its ASCII code? x30 -> ‘0’, x31 -> ’1’, … x39 -> ’9’

What is the difference between an upper-case letter ('A', 'B', …) and its lower-case equivalent ('a', 'b', …)?

Difference of x20

Given two ASCII characters, how do we tell which comes first in alphabetical order? Compare ASCII values, the lowest value is the first in alphabetical order

Are 128 characters enough?(http://www.unicode.org/)

2-14

Other Data TypesText 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 processorsMMX -- multiple 8-bit operations on 32-bit word

Sound• sequence of fixed-point numbers

2 - 15

Another use for bits: Logic

Beyond numbers

• logical variables can be true or false, on or off, etc., and so are readily represented by the binary system.

• A logical variable A can take the values false = 0 or true = 1 only.

• The manipulation of logical variables is known as Boolean Algebra, and has its own set of operations - which are not to be confused with the arithmetical operations of the previous section.

• Some basic operations: NOT, AND, OR, XOR

2-16

LC-3 Data TypesSome data types are supported directly by theinstruction set architecture.

For LC-3, there is only one hardware-supported data type:• 16-bit 2’s complement signed integer• Operations: ADD, AND, NOT

Other data types are supported by interpreting16-bit values as logical, text, fixed-point, etc.,in the software that we write.