- 42 Views
- Uploaded on
- Presentation posted in: General

Chapter 2 : How are data represented ?

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Chapter 2: How are data represented?

- 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

- 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 # 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 # 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

- Binary digits – bits
- 8 bits = 1 byte
- 210 bytes = 1024 bytes =1 kilobytes = 1KB
- 220 bytes = 210 KB = 1 megabytes = 1MB
- 230 bytes = 210 MB = 1 gigabytes = 1GB
- 240 bytes = 210 GB = 1 terabytes = 1TB

- 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

- 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.,

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

- Floating-point numbers for real numbers
- Three parts of representation:
- 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

- Three parts of representation:

- Single-precision floating-point numbers
- Sign (always 1 bits: 0 for + and 1 for -)
- Significant digits: 23 bits
- exponent: 8

- Double-precision floating-point numbers
- Sign (always 1 bits: 0 for + and 1 for -)
- Significant digits: 52 bits
- 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

- Computers can represent numbers only in limited accuracy.

// file: public_html/2005f-html/cil102/accuracy.c

#include <stdio.h>

int main() {

int x, y, result;// x, y, and result all use 32 bits to represent integers (-2,147,648 to +2,147,483,647)

char op;

int i;

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

- 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.

- 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

- 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.

- Ex.,
- Use two bytes per char/symbols
- 16 bits have 65,536 combinations (characters)
- Unicode coding system

- Use one byte per char

A picture is treated as a matrix of dots, called pixels.

- 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

- 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

- 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

- 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.

- 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.

- 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

- 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)

- Bitmap (.bmp)

- 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

- PostScript (.ps)

- Pictures in the textbook
http://www.cs.grinnell.edu/~walker/fluency-book/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/JpgVsGif.html

- 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

- 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

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