Chapter 1: How are computers organized?

Download Report

Transcript Chapter 1: How are computers organized?

Chapter 2: How are data
represented?
Why we care?






The accuracy of our results
The speed of processing
The range of alphabets available to us
The size of the files we must store
The quality of graphics on screen and
on paper
The time it takes for Internet
download
Why computers work in binary?



Cheapest and simplest in design and
engineering
Switch: on  1; off  0
Circuit: voltages
– 1.7 volts – higher  1
– 0.0 volts - 1.3 volts  0
– Voltages (1.3 to 1.7) are avoided in design

Mathematics: binary numbers
– Using digits 0 and 1 only.
Decimal vs. Binary

Decimal # system
– 10 symbols: 1, 2, 3,…9, 0
– Base = 10 (We have 10 fingers)
– Decimal number 2324 reads “2 thousands
3 hundreds twenty four”.

Binary # system
– 2 symbols: 0 and 1
– Base = 2
– Binary number 1101 = ?
Decimal vs. Binary
Decimal # System:
2
3
2
4
.
Each digit represents:
2*1000
3*100
2*10
4*1
Position values:
1000
100
10
1
Position values (base):
103
102
101
100
Value in Decimal:
2*1000+3*100+2*10+4*1 = 2324D
Binary # System:
1
1
0
1
.
Position values (base):
23
22
21
20
Position values:
8
4
2
1
Each digit represents:
1*8
1*4
0*2
1*1
Value in Decimal:
1*8+1*4+0*2+1*1 = 13D
Why do computer work in binary?






Binary digits – bits
8 bits = 1 byte
210 bytes
220 bytes
230 bytes
240 bytes
=
=
=
=
1024 bytes =1 kilobytes = 1KB
210 KB = 1 megabytes = 1MB
210 MB = 1 gigabytes = 1GB
210 GB = 1 terabytes = 1TB
Types of data

Instructions
– Computer instructions are coded in sequences of 0’s and 1’s

Numbers
– 2324, -34.35, 34567890123.12345

Characters and symbols
– A, B, C, … Z, a, b, c,… z,
– 0, 1, 2, 3 … 9, +, -, ), (, *, &, etc

Images
– Photos, charts, drawings

Audio
– Sound, music, etc

Video
– Video clips and movies
Representation of Numbers

Fixed-size-storage approach:
– Computers allocate a specified amount of space
for a number

Integers
1 bit: 0 to 1
 2 bits: 00, 01, 10, 11  0 to 3
 4 bits: 0000, 0001, 0010, … 1111  0 to 15
 1 byte: 0 to 255
 2 bytes: -32768 to +32767
 4 bytes: -2,147,483,648 to +2,147,483,647
Note: with 4 bytes for integers, any number smaller than
-2,147,648 or larger than 2,147,483,647 would be
incorrectly represented.,

Representation of Numbers
Binary representation of real numbers
Binary # System:
1
0
.
1
1
1
Position values (base):
21
20
2-1
2-2
2-3
Position values:
2
1
1/2
1/4
1/8
Each digit represents:
1*2
0*1
1*0.5
1*0.25
1*0.125
Value in Decimal:
2 + ½ + ¼ + 1/8 = 2.875D
Representation of Numbers

Floating-point numbers for real numbers
– Three parts of representation:
1.
2.
3.
Sign (always 1 bits: 0 for + and 1 for -)
Significant digits (e.g., six bits)
the power of 2 for the leftmost digit (e.g., 3 bits)
– Example for binary -1111.01



Sign: 1 (negative)
Significant digits: 111101B
Power of 2: 011B
– Example for binary +100.1101B


Sign: 0 (positive)
Significant digits: 100110B
– Note: the last digit is lost, which is 1/16 in decimal

Power of 2: 010B
Representation of Numbers

Single-precision floating-point numbers
1. Sign (always 1 bits: 0 for + and 1 for -)
2. Significant digits: 23 bits
3. exponent: 8

Double-precision floating-point numbers
1. Sign (always 1 bits: 0 for + and 1 for -)
2. Significant digits: 52 bits
3. exponent: 11

What you should know?
–
Computers can represent numbers only in limited accuracy.

–
E.g., when you enter a 20 digit decimal # into a program that uses
single-precision, only about 7 digits are actually stored, the rest are
lost.
Real examples:


Designing aircraft on p.35
The Vancouver Stock Exchange Index on pp. 38-39
Representation of Numbers
// file: public_html/2005f-html/cil102/accuracy.c
#include <stdio.h>
int main() {
int x, y, result;
char op;
int i;
// x, y, and result all use 32 bits to represent integers (-2,147,648 to +2,147,483,647)
for (i = 0; i < 100; i++) {
printf("please enter an expression:\n");
scanf("%d %c %d", &x, &op, &y);
}
if (op == '+')
result = x + y;
else if (op == '-')
result = x - y;
else {
printf("Invalid operator!!");
break;
}
printf("%d %c %d = %d\n", x, op, y, result);
}
// When you enter 2000000000 + 500000000, the result is -1794967296
Representation of Numbers

Variable-size-storage approach:
– Allow a wide-range of numbers to be
stored accurately
– Needs significant more time to process
– Fixed-size approach is used more
common than variable-size approach.
Representation of characters


There are no visual letters A, B, C, etc stored in
computers like we have in mind.
Letters and symbols are encoded in 8 bits – one
byte - of 0’s and 1’s.
– Keyboard converts keys A, B, C etc to their corresponding
codes and
– monitor converts the code into visual letters A, B, C etc on
screen.

Two commonly used coding schemes:
– ASCII: American Standard Code Information Interchange
– EBCDIC: Extended Binary Coded Decimal Interchange
Code
Representation of characters
Character
A
B
a
b
0
1
2
, (comma)
- (dash)
EBCDIC
11000001
11000010
10000001
10000010
11110000
11110001
11110010
01101011
01100000
ASCII
01000001
01000010
01100001
01100010
00110000
00110001
00110010
00101100
00100101
Representation of characters

Foreign characters – two approaches
– Use one byte per char

Ex.,
– ISO-8859-1 for Western (Roman)
– ISO-8859-7 for Greek
– ISO-2022-CN for simplified Chinese

Webpage: using “META charset=…” to specify which
encoding is used.
– Use two bytes per char/symbols


16 bits have 65,536 combinations (characters)
Unicode coding system
Representation of Images
A picture is treated as a matrix of dots, called pixels.
Representation of Images


The pixels are so small and close
together we cannot really see them as
separate dots.
Resolution: dots per inch (dpi)
– 72 dpi for Web images
– 600 or 1200 dpi for professional printers
or home photo printers
Representation of Images


The color of each pixel is represented using bits.
Black/White: one bit per pixel
– 1-white and 0-black

Gray scale: one byte per pixel
– 256 different degrees of gray (00000000 to 11111111)
– 00000000 black, 01111111 intermediate gray, 11111111 white

Color: three bytes per pixel
– Red, green, blue color
– One byte for the intensity of each of the three color
– 256 possible red, 256 green, 256 blue



Pure red: 11111111 for red byte, 00000000 for green and blue
White: 11111111 for all three bytes
Black: 00000000 for all three bytes
Representation of Images


Image storage -- size
Gray scale: one byte per pixel
E.g., A 3 X 5 picture with 300 dpi resolution
3 * 300 = 900 pixels per column
5 * 300 = 1500 pixels per row
900 * 1500 = 1,350,000 pixels/picture
Needed storage = 1,350,000 bytes/picture = 1MB/picture

Color: three bytes per pixel
E.g., A 3 X 5 picture with 300 dpi resolution
3 * 300 = 900 pixels per column
5 * 300 = 1500 pixels per row
900 * 1500 = 1,350,000 pixels/picture
Needed storage = 3 (bytes per pixel) * 1,350,000
= 4,050,000 bytes/picture
= 4MB/picture --- TOO BIG
Representation of Images


Image compression
Color table
– Most pictures contain a small # of different colors
– Use a table to define colors that are actually used in
the picture
– Each pixel has an index to the color table.
– Each image contains a color table and table indices
– Example
For a picture with 100 different colors, the color table would
contain 100 entries, three bytes each entry for each color.
One byte can be used as index to the table for each pixel.
Representation of Images

Drawing commands
– Draw picture using basic commands
– Just as artists draws using a pencil or a
brush and other basic movements
– Example,

A house is drawn by sketching various elements
(doors, windows, walls), adding color to them,
and moving to the desired position.
Representation of Images

Data averaging or sampling
– Condense the size by selecting a smaller collection of
information to store.
– Many different ways of sampling and data averaging
– An example: choose to store only every other pixel
in an image (sampling)– reducing the size to half. To
display the full picture, the computer need to fill in
the missing data with, for example, the average of
neighboring pixels (data averaging)
– The resulting picture cannot be as sharp as the
original
– Lossy data compression
What are “.gif”, “.ps”, “.jpg”,
“.bmp” formats?

Commonly used image file formats -1
– Bitmap (.bmp)



Pixel-by-pixel storage of all color information for each pixel.
Lossless representation
Files are huge.
– Graphics Interchange Format (.gif)




Use one or more color tables – the color table technique
Each table contains 256 colors.
Suitable for pictures with a small # (<256) of different
colors (e.g., organization charts)
Not suitable for pictures with shading (e.g., photos)
What are “.gif”, “.ps”, “.jpg”,
“.bmp” formats?

Commonly used image file formats - 2
– PostScript (.ps)





Employ the drawing commands technique
“moveto” draws a line from current position to a new one and “arc”
draws an arc given its center, radius, etc
General shapes can be used in multiple places
Fonts can be reused.
Useful when the picture can be rendered as a drawing or its
contains many of the same elements (e.g., text of the same fonts)
– Joint Photographic Experts Group (JPEG) (.jpg)




use the data averaging and sampling on 8*8 pixel blocks
User determines the level of details and clarity
High-quality image – 8*8 blocks maintain their contents
Low-quality image – info in 8*8 blocks is discarded  smaller files
Comparison b/w jpg, gif, and ps

Pictures in the textbook
http://www.cs.grinnell.edu/~walker/fluencybook/figures/chapter2/fig-2-overview.html

Comparison of .jpg and .gif
http://www.siriusweb.com/tutorials/gifvsjpg/

More on .jpg and .gif
http://www.wfu.edu/~matthews/misc/jpg_vs_gif/Jpg
VsGif.html
Summary of Image Representations

Other commonly used formats
– Tiff: Tagged Image File Format
– PNG: Portable Network Graphics
– New formats will emerge



Understand the format and know the
pros and cons
To learn: Google the format
Use programs (GIMP) to convert b/w
formats
Summary – chapter 2








Computers work in binary
Integers may be constrained in size
Real numbers may have limited accuracy
Computations may produce roundoff errors,
affecting accuracy
Characters and languages are encoded in binary
Pictures are displayed pixel by pixel
Color table, draw commands, and data averaging
and sampling compression techniques
.bmp, jpg, .gif, .ps formats
Terminology









Binary vs. decimal
Position value
The base of a # system
Bit/byte/KB/MB/GB/TB
Integer binary #s
Real # in binary
Floating point numbers
Representational error
Roundoff errors









ASCII/EBCDIC/Unicode
Pixels
Dots per inch (dpi)
Bitmap
Color table
Data averaging
Data sampling
Data compression
.jpg, .bmp, .gif, .ps