Binary Numbers - La Salle University

Download Report

Transcript Binary Numbers - La Salle University

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 volts
5 volts
0 volts
Decimal
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 = 2102 + 0101 + 5100
11001101 = 127 + 126 + 025 + 024
+ 123 + 122 + 021 + 120
= 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
1

Repeat 102/2 = 51, remainder 0
0
1
Iterate

51/2 = 25, remainder 1
1

1
0
1
0
1
25/2 = 12, remainder 1
1

0
1
12/2 = 6, remainder 0
0
1
1
Iterate

6/2 = 3, remainder 0
0

1
1
0
1
0
1
0
1
3/2 = 1, remainder 1
1

0
0
0
1
1
1/2 = 0, remainder 1
1
1
0
0
1
1
Recap
1
1
0
0
1
1
127 + 126 + 025 + 024
+ 123 + 122 + 021 + 120
205
0
1
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
3
7
9
5
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
1
1

1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
A byte may not be enough to represent the
sum of two such numbers
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
1
1

1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
Ignoring overflow the two eight-bit numbers
above sum to zero
Two’s Complement
0

1
0
1
0
1
0
Step 1: exchange 1’s and 0’s
1

0
1
0
1
0
1
0
1
0
1
1
0
Step 2: add 1
1
1
0
1
Riddle
1




1
0
1
0
1
1
0
Is it 214?
Or is it – 42?
Or is it …?
It’s a matter of interpretation

How was it declared?
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 / 2
24 / 2
12 / 2
6/2
3/2
1/2
1100010
= 49
= 24
= 12
= 6
= 3
= 1
= 0
remainder
remainder
remainder
remainder
remainder
remainder
remainder
0
1
0
0
0
1
1
Converting decimal to binary III

98.6

Fractional part








0.6  2 =
0.2  2 =
0.4  2 =
0.8  2 =
0.6  2 =
0.2  2 =
REPEATS
.100110
1.2
0.4
0.8
1.6
1.2
0.4
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
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
1
2
3
4
5
6
7








0000
0001
0010
0011
0100
0101
0110
0111








0
1
2
3
4
5
6
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
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
IP(v4) Addresses



An IP(v4) 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
Boolean Operators



Aka logical operators
Have Boolean input and Boolean output
Standard:






AND
OR
NOT
XOR (either or but not both)
NOR = NOT(OR)
NAND = NOT(AND)
Venn Diagrams

If inside circle A means A is true, and
similarly for circle B, then (A AND B) is
the intersection
A
B
Truth Tables

AND
INPUT
A
0
0
1
1
B
0
1
0
1
OUTPUT
A AND B
0
0
0
1
Truth Tables (Cont.)

OR
INPUT
A
0
0
1
1
B
0
1
0
1
OUTPUT
A OR B
0
1
1
1
Truth Tables (Cont.)

XOR (Excluded OR)
INPUT
A
0
0
1
1
B
0
1
0
1
OUTPUT
A XOR B
0
1
1
0
So I lied



We said computing was all about numbers,
but it’s really all about logic
The adding operation is just a particular
combination of logic operations
Possibilities for adding two bits




0+0=0
0+1=1
1+0=1
1+1=0
(with
(with
(with
(with
no carry)
no carry)
no carry)
a carry)
Addition Truth Table
INPUT
OUTPUT
Sum
Carry
A XOR B A AND B
A
B
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
All is NAND



Actually you can use one logic gate and
a few tricks (like De Morgan’s theorem)
to build all of the “combinatorial”
circuitry (the circuitry that doesn’t
involve memory)
NORs work too
But we tend to think in ANDs, ORs and
NOTs
Bit manipulation
You can use an AND to select out part
of a word (where s is a 1 or 0, etc)

s
t
u
v
w
x
y
z
0
0
0
0
AND
1
1
1
1
gives
s
t
u
v
0
0
0
0
IP Addresses Revisted




LaSalle’s IP address is what’s called a Class B
IP address
Of the 32 bits the first two are 10 (this
identifies us as Class B)
The remaining 14 bits of the first two bytes
identify us as LaSalle
The remaining 2 bytes are for our internals
use (to assign computers within LaSalle)
In or Out



To see if an address is local to LaSalle,
you would restrict your attention to the
first two bytes.
HOW?
AND it with FFFF0000
Subnets


A network (like LaSalle’s) can be
divided further into sub-networks
Then subnet masks are used to
determine whether or not another
computer is on the same subnet