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
Data and Programing
A programming language is a computer system created to allow humans to precisely express
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
• 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