**Chapter 1:**

**Data Storage**

**Computer Science: An Overview** **Twelfth Edition**

**by **

**J. Glenn Brookshear**

**Dennis Brylow**

Copyright © 2015 Pearson Education, Inc. _{1-2}

**Chapter 1: Data Storage**

### • 1.1 Bits and Their Storage

### • 1.2 Main Memory

### • 1.3 Mass Storage

### • 1.4 Representing Information as Bit Patterns

### • 1.5 The Binary System

**Chapter 1: Data Storage** **(continued)**

### • 1.6 Storing Integers

### • 1.7 Storing Fractions

### • 1.8 Data and Programming

### • 1.9 Data Compression

### • 1.10 Communications Errors

Copyright © 2015 Pearson Education, Inc. _{1-4}

**Bits and Bit Patterns**

### • **Bit: Binary Digit (0 or 1)**

### • Bit Patterns are used to represent information – Numbers

### – Text characters – Images

### – Sound

### – And others

**Boolean Operations**

### • **Boolean Operation: An operation that **

### manipulates one or more true/false values

### • Specific operations

### – AND – OR

### – XOR (exclusive or)

### – NOT

Copyright © 2015 Pearson Education, Inc. _{1-6}

**Figure 1.1 The possible input and output **

**values of Boolean operations AND, OR, **

**and XOR (exclusive or)**

**Gates**

### • **Gate: A device that computes a Boolean ** operation

### – Often implemented as (small) electronic circuits

### – Provide the building blocks from which computers are constructed

### – VLSI (Very Large Scale Integration)

Copyright © 2015 Pearson Education, Inc. _{1-8}

**Figure 1.2 A pictorial representation of AND, **

**OR, XOR, and NOT gates as well as their input **

**and output values**

**Flip-flops**

### • **Flip-flop: A circuit built from gates that can ** store one bit.

### – One input line is used to set its stored value to 1 – One input line is used to set its stored value to 0 – While both input lines are 0, the most recently

### stored value is preserved

Copyright © 2015 Pearson Education, Inc. _{1-10}

**Figure 1.3 A simple flip-flop circuit**

**Figure 1.4 Setting the output of a **

**flip-flop to 1**

Copyright © 2015 Pearson Education, Inc. _{1-12}

**Figure 1.4 Setting the output of a **

**flip-flop to 1 (continued)**

**Figure 1.4 Setting the output of a **

**flip-flop to 1 (continued)**

Copyright © 2015 Pearson Education, Inc. _{1-14}

**Figure 1.5 Another way of **

**constructing a flip-flop**

**Hexadecimal Notation**

### • **Hexadecimal notation: A shorthand ** notation for long bit patterns

### – Divides a pattern into groups of four bits each – Represents each group by a single symbol

### • Example: 10100011 becomes A3

Copyright © 2015 Pearson Education, Inc. _{1-16}

**Figure 1.6 The hexadecimal coding **

**system**

**Main Memory Cells**

### • **Cell: A unit of main memory (typically 8 bits ** **which is one byte)**

### – **Most significant bit: the bit at the left (high-** order) end of the conceptual row of bits in a memory cell

### – **Least significant bit: the bit at the right (low-**

### order) end of the conceptual row of bits in a

### memory cell

Copyright © 2015 Pearson Education, Inc. _{1-18}

**Figure 1.7 The organization of a **

**byte-size memory cell**

**Main Memory Addresses**

### • **Address:** A “name” that uniquely identifies one cell in the computer’s main memory

### – The names are actually numbers.

### – These numbers are assigned consecutively starting at zero.

### – Numbering the cells in this manner associates

### an order with the memory cells.

Copyright © 2015 Pearson Education, Inc. _{1-20}

**Figure 1.8 Memory cells arranged by **

**address**

**Memory Terminology**

### • **Random Access Memory (RAM):**

### Memory in which individual cells can be easily accessed in any order

### • **Dynamic Memory (DRAM): RAM **

### composed of volatile memory

Copyright © 2015 Pearson Education, Inc. _{1-22}

**Measuring Memory Capacity**

### • **Kilobyte: 2** ^{10} bytes = 1024 bytes

### – Example: 3 KB = 3 times1024 bytes

### • **Megabyte: 2** ^{20} bytes = 1,048,576 bytes

### – Example: 3 MB = 3 times 1,048,576 bytes

### • **Gigabyte: 2** ^{30} bytes = 1,073,741,824 bytes

### – Example: 3 GB = 3 times 1,073,741,824 bytes

**Mass Storage**

### • Additional devices:

### – Magnetic disks – CDs

### – DVDs

### • Advantages over main memory

### – Less volatility

### – Larger storage capacities – Low cost

### – Magnetic tape – Flash drives

### – Solid-state disks

Copyright © 2015 Pearson Education, Inc. _{1-24}

**Figure 1.9 A magnetic disk storage **

**system**

**Figure 1.10 CD storage**

Copyright © 2015 Pearson Education, Inc.

**Flash Drives**

### • **Flash Memory – circuits that traps **

### electrons in tiny silicon dioxide chambers

### • Repeated erasing slowly damages the media

### • Mass storage of choice for:

### – Digital cameras

### • **SD Cards provide GBs of storage**

1-26

### – Smartphones

**Representing Text**

### • **Each character (letter, punctuation, etc.) is ** **assigned a unique bit pattern.**

### – **ASCII: Uses patterns of 7-bits to represent ** most symbols used in written English text

### – ISO developed a number of 8 bit extensions to ASCII, each designed to accommodate a

### major language group

### – **Unicode: Uses patterns up to 21-bits to ** represent the symbols used in languages

### world wide, 16-bits for world’s commonly used

Copyright © 2015 Pearson Education, Inc. _{1-28}

## Figure 1.11 **The message “Hello.” in **

**ASCII or UTF-8 encoding**

**Representing Numeric Values**

### • **Binary notation: Uses bits to represent a ** number in base two

### • Limitations of computer representations of numeric values

### – Overflow: occurs when a value is too big to be represented

### – Truncation: occurs when a value cannot be

### represented accurately

Copyright © 2015 Pearson Education, Inc. _{1-30}

**Representing Images**

### • Bit map techniques

### – Pixel: short for “picture element”

### – RGB

### – Luminance and chrominance

### • Vector techniques

### – Scalable

### – TrueType and PostScript

**Representing Sound**

### • Sampling techniques

### – Used for high quality recordings – Records actual audio

### • MIDI

### – Used in music synthesizers

### – Records “musical score”

Copyright © 2015 Pearson Education, Inc. _{1-32}

**Figure 1.12 The sound wave represented by the **

**sequence 0, 1.5, 2.0, 1.5, 2.0, 3.0, 4.0, 3.0, 0**

**The Binary System**

### The traditional decimal system is based on powers of ten.

### The Binary system is based on powers

### of two.

Copyright © 2015 Pearson Education, Inc. _{1-34}

**Figure 1.13 The base ten and binary **

**systems**

**Figure 1.14 Decoding the binary **

**representation 100101**

Copyright © 2015 Pearson Education, Inc. _{1-36}

**Figure 1.15 An algorithm for finding the **

**binary representation of a positive integer**

**Figure 1.16 Applying the algorithm in ** **Figure 1.15 to obtain the binary **

**representation of thirteen**

Copyright © 2015 Pearson Education, Inc. _{1-38}

**Figure 1.17 The binary addition facts**

**Figure 1.18 Decoding the binary **

**representation 101.101**

Copyright © 2015 Pearson Education, Inc. _{1-40}

**Storing Integers**

### • **Two’s complement notation: The most ** popular means of representing integer

### values

### • **Excess notation: Another means of ** representing integer values

### • Both can suffer from overflow errors

## Figure 1.19 **Two’s complement **

**notation systems**

Copyright © 2015 Pearson Education, Inc. _{1-42}

**Figure 1.20 Coding the value -6 in two’s **

**complement notation using four bits**

**Figure 1.21 Addition problems converted **

**to two’s complement notation**

Copyright © 2015 Pearson Education, Inc. _{1-44}

**Figure 1.22 An excess eight **

**conversion table**

**Figure 1.23 An excess notation system **

**using bit patterns of length three**

Copyright © 2015 Pearson Education, Inc. _{1-46}

**Storing Fractions**

### • **Floating-point Notation: Consists of a **

### sign bit, a mantissa field, and an exponent field.

### • Related topics include

### – Normalized form

### – Truncation errors

**Figure 1.24 Floating-point notation **

**components**

Copyright © 2015 Pearson Education, Inc. _{1-48}

**Figure 1.25 Encoding the value 2 ** ^{5} **⁄** _{8}

^{5}

_{8}

**Data and Programing**

**A programming language is a ** computer system created to allow humans to precisely express

**A programming language is a**

### algorithms using a higher level of

### abstraction.

Copyright © 2015 Pearson Education, Inc.

**Getting Started with Python**

### • **Python: a popular programming language ** for applications, scientific computation, and as an introductory language for students

**Python: a popular programming language**

### • **Freely available from www.python.org**

### • *Python is an interpreted language*

### – Typing:

### print('Hello, World!') – Results in:

### Hello, World!

1-50

**Variables**

### • **Variables: name values for later use**

### • Analogous to mathematic variables in algebra

### s = 'Hello, World!' print(s)

### my_integer = 5

### my_floating_point = 26.2

### my_Boolean = True

Copyright © 2015 Pearson Education, Inc.

**Operators and Expressions**

1-52

### print(3 + 4) # Prints 7 print(5 – 6) # Prints -1 print(7 * 8) # Prints 56

### print(45 / 4) # Prints 11.25 print(2 ** 10) # Prints 1024

### s = 'hello' + 'world' s = s * 4

### print(s)

**Currency Conversion**

### # A converter for currency exchange.

### USD_to_GBP = 0.66 # Today's exchange rate GBP_sign = '\u00A3' # Unicode value for £

### dollars = 1000 # Number dollars to convert

### # Conversion calculations

### pounds = dollars * USD_to_GBP

### # Printing the results

### print('Today, $' + str(dollars))

### print('converts to ' + GBP_sign + str(pounds))

Copyright © 2015 Pearson Education, Inc.

**Debugging**

### • *Syntax errors*

### print(5 +)

### SyntaxError: invalid syntax pront(5)

### NameError: name 'pront' is not defined

### • *Semantic errors*

### – Incorrect expressions like

### total_pay = 40 + extra_hours * pay_rate

### • *Runtime errors*

### – Unintentional divide by zero

1-54

**Data Compression**

### • Lossy versus lossless

### • Run-length encoding

### • Frequency-dependent encoding (Huffman codes)

### • Relative encoding

### • Dictionary encoding (Includes adaptive dictionary

### encoding such as LZW encoding.)

Copyright © 2015 Pearson Education, Inc. _{1-56}

**Compressing Images**

### • GIF: Good for cartoons

### • JPEG: Good for photographs

### • TIFF: Good for image archiving

**Compressing Audio and Video**

### • MPEG

### – High definition television broadcast – Video conferencing

### • MP3

### – Temporal masking

### – Frequency masking

Copyright © 2015 Pearson Education, Inc. _{1-58}

**Communication Errors**

### • Parity bits (even versus odd)

### • Checkbytes

### • Error correcting codes

**Figure 1.26 The ASCII codes for the **

**letters A and F adjusted for odd parity**

Copyright © 2015 Pearson Education, Inc. _{1-60}