binary numbers. why binary? maximal distinction among values minimal corruption from noise imagine...

34
Binary Numbers

Upload: toby-carter

Post on 26-Dec-2015

223 views

Category:

Documents


1 download

TRANSCRIPT

Binary Numbers

Why Binary? Maximal distinction among values

minimal corruption from noise Imagine taking the same physical

attribute of a circuit, e.g. a voltage lying between 0 and 5 volts, to represent a number

The overall range can be divided into any number of regions

Don’t sweat the small stuff For decimal numbers, fluctuations must

be less than 0.25 volts For binary numbers, fluctuations must

be less than 1.25 volts5 volts

0 voltsDecimal Binary

It doesn’t matter …. Recall the power supply voltage

measurements from lab 1 Ideally they should be 5.00 volts

and 12.00 volts Typically they were 5.14 volts or

12.22 volts So what, who cares

How to represent big integers

Use positional weighting, same as with decimal numbers

205 = 2102 + 0101 + 5100

11001101 = 127 + 126 + 025 + 024 + 123 + 122 + 021 + 120 =128 + 64 + 8 + 4 + 1 = 205

Converting 205 to Binary

205/2 = 102 with a remainder of 1, place the 1 in the least significant digit position

Repeat 102/2 = 51, remainder 0

1

0 1

Iterate 51/2 = 25, remainder 1

25/2 = 12, remainder 1

12/2 = 6, remainder 0

1 0 1

1 1 0 1

0 1 1 0 1

Iterate 6/2 = 3, remainder 0

3/2 = 1, remainder 1

1/2 = 0, remainder 1

0 0 1 1 0 1

1 0 0 1 1 0 1

1 1 0 0 1 1 0 1

Recap

1 1 0 0 1 1 0 1

127 + 126 + 025 + 024

+ 123 + 122 + 021 + 120

205

Adding Binary Numbers Same as decimal; if sum of digits

in a given position exceeds the base (10 for decimal, 2 for binary) then there is a carry into the next higher position

1

3 9

+ 3 5

7 4

Adding Binary Numbers

1 1 1 1

0 1 0 0 1 1 1

+ 0 1 0 0 0 1 1

1 0 0 1 0 1 0

Uh oh, overflow What if you use a byte (8 bits) to represent

an integer

A byte may not be enough to represent the sum of two such numbers

1 1

1 0 1 0 1 0 1 0

1 1 0 0 1 1 0 0

1 0 1 1 1 0 1 1 0

Bigger Numbers You can represent larger numbers

by using more words You just have to keep track of the

overflows to know how the lower numbers (less significant words) are affecting the larger numbers (more significant words)

Negative numbers Negative x is that number when added to x

gives zero

Ignoring overflow the two eight-bit numbers above sum to zero

1 1 1 1 1 1 1

0 0 1 0 1 0 1 0

1 1 0 1 0 1 1 0

1 0 0 0 0 0 0 0 0

Two’s Complement

Step 1: exchange 1’s and 0’s

Step 2: add 1

0 0 1 0 1 0 1 0

1 1 0 1 0 1 0 1

1 1 0 1 0 1 1 0

Riddle

Is it 214? Or is it – 42? Or is it …? It’s a matter of interpretation

How was it declared?

1 1 0 1 0 1 1 0

Hexadecimal Numbers Even moderately sized decimal

numbers end up as long strings in binary

Hexadecimal numbers (base 16) are often used because the strings are shorter and the conversion to binary is easier

There are 16 digits: 0-9 and A-F

Decimal Binary Hex 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7

8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F

Binary to Hex Break a binary string into groups of

four bits (nibbles) Convert each nibble separately

1 1 1 0 1 1 0 0 1 0 0 1

E C 9

Addresses With user friendly computers, one rarely

encounters binary, but we sometimes see hex, especially with addresses

To enable the computer to distinguish various parts, each is assigned an address, a number Distinguish among computers on a network Distinguish keyboard and mouse Distinguish among files Distinguish among statements in a program Distinguish among characters in a string

How many? One bit can have two states and thus

distinguish between two things Two bits can be in four states and … Three bits can be in eight states, … N bits can be in 2N states

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

IP Addresses An IP address is used to identify a

network and a host on the Internet It is 32 bits long How many distinct IP addresses

are there?

Characters We need to represent characters using

numbers ASCII (American Standard Code for

Information Interchange) is a common way A string of eight bits (a byte) is used to

correspond to a character Thus 28=256 possible characters can be

represented Actually ASCII only uses 7 bits, which is 128

characters; the other 128 characters are not “standard”

Unicode Unicode uses 16 bits, how many

characters can be represented? Enough for English, Chinese,

Arabic and then some.

ASCII 0 00110000 1 00110001 … A 01000001 B 01000010 … a 01100001 b 01100010 …

Booleans A Boolean variable is something

that is true or false Booleans have two states and

could be represented by a single bit (1 for true and 0 for false)

Booleans appearing in a program will take up a whole word in memory

INPUT OUTPUT

A BSum

A XOR B

CarryA AND

B

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

Fractions Similar to what we’re used to with

decimal numbers

3.14159 =

3 · 100 + 1 · 10-1 + 4 · 10-2 + 1 · 10-3 + 5 · 10-4 + 9 · 10-5

11.001001 =

1 · 21 + 1 · 20 + 0 · 2-1 + 0 · 2-2 + 1 · 2-3 + 0 · 2-4 + 0 · 2-5

+ 1 · 2-6

(11.001001

3.140625)

Converting decimal to binary II

98.6 Integer part

98 / 2 = 49 remainder 0 49 / 2 = 24 remainder 1 24 / 2 = 12 remainder 0 12 / 2 = 6 remainder 0 6 / 2 = 3 remainder 0 3 / 2 = 1 remainder 1 1 / 2 = 0 remainder 1

1100010

Converting decimal to binary III

98.6 Fractional part

0.6 2 = 1.2 0.2 2 = 0.4 0.4 2 = 0.8 0.8 2 = 1.6 0.6 2 = 1.2 0.2 2 = 0.4 REPEATS

.100110

Converting decimal to binary IV

Put together the integral and fractional parts

98.6 1100010.1001100110011001

Scientific notation Used to represent very large and

very small numbers Ex. Avogadro’s number

6.0221367 1023 particles 602213670000000000000000

Ex. Fundamental charge e 1.60217733 10-19 C 0.000000000000000000160217733 C

Floats SHIFT expression so it is just under 1

and keep track of the number of shifts 1100010.1001100110011001

.11000101001100110011001 27

Express the number of shifts in binary .11000101001100110011001 200000111

Mantissa and Exponent .11000101001100110011001

200000111

Mantissa .11000101001100110011001

200000111

Exponent