CSE 111, Fall 2000

Great Ideas in Computer Science

Lecture Notes #3

(3. Insight I, continued)

b) How to convert between decimal & binary

e.g., how to convert decimal 87
(= letter W, in ASCII)
to 8-bit binary (01010111)

i.e., how to code a decimal numeral with
only 2 objects

Note: An 8-bit binary numeral has these places:

___ ___ ___ ___ ___ ___ ___ ___
128s
place 64s
place 32s
place 16s
place 8s
place 4s
place 2s
place 1s
place

Note: Max decimal numeral that can be
represented in 8 bits is:
11111111 = 128 +たす 64 + ... + 2 + 1 = 255

Link to the Algorithm for Converting a Decimal D to an 8-Bit Binary B.

e.g., to convert 87 (decimal) to 8-bit binary:

1 2 3
Decimal Numeral How many of these? Bit
D = 87 128 0 = Q 87 / 128 = 0, R=87
R = 87 N = 64 1 = Q 87 / 64 = 1, R = 23
R = 23 N = 32 0 = Q 23 / 32 = 0, R = 23
R = 23 N = 16 1 = Q 23 / 16 = 1, R = 7
R = 7 N = 8 0 = Q 7 / 8 = 0, R = 7
R = 7 N = 4 1 = Q 7 / 4 = 1, R = 3
R = 3 N = 2 1 = Q 3 / 2 = 1, R = 1
R = 1 N = 1 1 = Q 1 / 1 = 1, R = 0 (so, stop)

So, 87 (decimal) = 01010111 (binary),
reading column 3 from the top down.

e.g., How to convert 8-bit binary 00101001
to decimal 41? Easy!

128s 64s 32s 16s 8s 4s 2s 1s
0 0 1 0 1 0 0 1
32 + 8 + 1
= 41 (!)

Link to the Binary Magic Trick.

c) How to add binary numbers:

Easy!
(Just remember that 1+1 = 10 (= decimal 2))

87 01010111
+ 41 + 00101001
128 10000000

Multiplication is similar, even easier!:
In decimal, 2 * 2 = 4
(remember: In computer science "*" = multiplication)
In binary, 10 * 10 = 100
(which is NOT the same as decimal 10 * 10 = 100 (!) )

4. Insight II

(Turing's insight about only needing 5 actions)

- Every algorithm can be expressed in a language
for a computer, called a Turing Machine (TM),
that consists of :
* a tape (i.e., an unlimited supply of paper)
* & read/write heads
& whose only nouns are "0" and "1"
& whose only verbs (actions) are:
* MOVELEFT
* MOVERIGHT
* PRINT-0
* PRINT-1
* ERASE

- We'll return to this later in the course,
but for more information, see:

Schagrin, Morton L.; Dipert, Randall R.;
& Rapaport, William J. (1985),
Logic: A Computer Approach
(New York: McGraw-Hill)
in Lockwood Library, BC138 .S32 1985

- We'll use Pascal, which is a much more
expressive language, but no more powerful

- Church-Turing Thesis:
Everything that can be computed
can be computed by a TM

i.e., for each computable problem P,
there is a TM that can
compute P's solution
(n problems, n TMs)

- Turing's Theorem:
There is a universal TM that can compute
anything that can be computed.

i.e., there is a universal TM, call it "U",
such that for each computable problem,
U can compute its solution
(1 TM, n problems)

- Karel the Robot is a TM (of a special kind)

5. Insight III (Boehm & Jacopini's Theorem)

- The 3 (or 4) (or 5) ways of creating more
complex actions out of the 5 basic ones are:

* sequence (do this; do that)

* selection (or choice):
if such and such is the case (or is true),
then do this
else do that

* repetition (or looping):
while such and such is the case (or is true),
do this

(* stop)

(* define new actions by naming them
(procedures, or subroutines) )

- These are the 3 basic features of Pascal
(& Karel) that we'll learn.


Copyright © 2000 by William J. Rapaport (rapaport@cse.buffalo.edu)

file: 111F00/lecturenotes3.12sp00.html

AltStyle によって変換されたページ (->オリジナル) /