Chapter 2 Bits, Data Types, and Operations

16
Chapter 2 Bits, Data Types, and Operations

description

Chapter 2 Bits, Data Types, and Operations. 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. - PowerPoint PPT Presentation

Transcript of Chapter 2 Bits, Data Types, and Operations

Page 1: Chapter 2 Bits, Data Types, and Operations

Chapter 2Bits, Data Types,and Operations

Page 2: Chapter 2 Bits, 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

Page 3: Chapter 2 Bits, Data Types, and Operations

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.

Page 4: Chapter 2 Bits, Data Types, and Operations

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

Page 5: Chapter 2 Bits, Data Types, and Operations

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

Page 6: Chapter 2 Bits, Data Types, and Operations

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.

Page 7: Chapter 2 Bits, Data Types, and Operations

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

Page 8: Chapter 2 Bits, Data Types, and Operations

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

Page 9: Chapter 2 Bits, Data Types, and Operations

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

Page 10: Chapter 2 Bits, Data Types, and Operations

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

Page 11: Chapter 2 Bits, Data Types, and Operations

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

Page 12: Chapter 2 Bits, Data Types, and Operations

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

Page 13: Chapter 2 Bits, Data Types, and Operations

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/)

Page 14: Chapter 2 Bits, Data Types, and Operations

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

Page 15: Chapter 2 Bits, Data Types, and Operations

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

Page 16: Chapter 2 Bits, Data Types, and Operations

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.