Transcript ALGORITHMS

FUNDAMENTAL DATA TYPES
CSC 171
LECTURE 4
How do Computers represent
information?
Computers are switches
Switches are “on” or “off”
Suppose we want to represent something
We can decide to interpret (semantics)
an “on” switch as a “1”
and an “off” switch as a “0”
How many possibilities?

1 switch
 2 switches
 3 switches
…
 “n” switches
A “code”

Ceasar Cipher
– Shift the letters


TED becomes VGF
Something is
represented as
something else
A
C
B
D
C
E
D
F
E
G
F
H
…
…
Coding Letters

How many letters?
 How many “switches” (bits)
What is a number?
324
A number is a shorthand for a polynomial
324 “means” (3*100)+(2*10)+(4*1)
Or : (3*102)+(2*101)+(4*100)
Why do we use 10 numerals?
{0,1,2,3,4,5,6,7,8,9}
A possible code

Every letter is a 26 bit sequence
 A is “10000000000000000000000000”
 B is “01000000000000000000000000”
 “TED” is :
– 00000000000000000010000000
00001000000000000000000000
00010000000000000000000000
A beter code


Use all possible
combinations
TED becomes
 010110010000011
 01011 00100 00011
A
00000
B
00001
C
00010
D
00011
E
00100
F
00101
…
…
What is a number?
324
A number is a shorthand for a polynomial
324 “means” (3*100)+(2*10)+(4*1)
Or : (3*102)+(2*101)+(4*100)
Why do we use 10 numerals?
{0,1,2,3,4,5,6,7,8,9}
Binary Digits (bits)
Since computers only have two states they
count in base 2 (binary)
11012
11012= (1*8)+(1*4)+(0*2)+(1*1)
Or = (1*23)+(1*22)+(0*21)+(1*20)
Or = 1310
Note: 8 “bits” is a “byte”
PAIRS EXCERCISE





Convert the following binary numbers into base
10
10101
00111
11010
01010
abcde = (a*24)+(b*23)+(c*22)+(d*21)+(e*20)
And, of course

Convert the following base 10 numbers into
binary
 7, 12, 5, 19

abcde=(a*24)+(b*23)+(c*22)+(d*21)+(e*20)
NUMBER TYPES IN JAVA

int : integers, no fractional part
–1
– -4
–0

double: floating point numbers
– 0.5
– 0.0
– -3.1111
Operations depend on type
“/” is the division operator
 7.0 / 4.0 yields 1.75
 7 / 4 yields 1

Note the “remainder” operator is useful for
integers
 7 % 4 yields 3

“PRIMITIVE” types in JAVA
boolean
char
byte
short
int
long
float
double
8 bits
16 bits
8 bits
16 bits
32 bits
64 bits
32 bits
64 bits
Assignment

public void addNickels(int count) {
nickels = nickels + count;
}
Need to draw this
Increment and decrement
nickles++
is shorthand for
nickles = nickles + 1;
or
Nickles += 1;
Some shorthand options
int count;
count = 0;
count++;
count--;
++count;
--count;
Constant variables

Sort of like “jumbo shrimp” or “freezer
burn”?
“Magic numbers” are bad style
(to the blackboard, robin!)

Static finals

Enable constants
Math.PI

Enable functions
Math.sqrt(x)