Chapter 3 Data Representation
Chapter 3 Data Representation Chapter Outline Data Representation and Processing Automated Data Processing Binary Data Representation Goals of Computer Data Representation CPU Data Types Integer Real number Character Boolean Memory address Technology Focus: Intel Memory Address Format Data Structures
Chapter Goals Describe numbering systems and their use in data representation Compare and contrast various data representation methods Describe how nonnumeric data is represented Describe common data structures and their uses
Data Representation and Processing Capabilities required of any data/information processor–organic, mechanical, electrical, optical: Recognizing external data and converting it to an appropriate internal format Storing and retrieving data internally Transporting data among internal storage and processing components Manipulating data to produce desired results or decisions
Automated Data Processing Data is converted from native format into a form suitable for the processing device Computers represent data electrically and process it with electrical switches Laws of electricity can be stated as mathematical equations Electronic devices perform computational functions embedded in the equations
A + B = C Example Circuit
Binary Data Representation Binary number Only one of two possible values (0 or 1) per digit Reliably transported among computer system components Can be processed by two–state electrical devices (relatively easy to design and fabricate) Correspond directly with values in Boolean logic
Hexadecimal Notation Uses 16 as its base or radix (hex = 6, and decimal = 10) Compact; advantage over binary notation Often used to designate memory addresses
Hexadecimal Notation
Octal Notation Uses base 8 numbering system Has a range of digits from 0 to 7 Expresses large numeric values in: One-third the length of corresponding binary notation Double the length of corresponding hexadecimal notation
Goals of Computer Data Representation Computer data formats are subject to trade-offs between several factors, including Compactness Accuracy Range Ease of manipulation Standardization Cost
Goals of Data Representation Compactness (Size) Describes number of bits used to represent a numeric value Trade-off: hardware cost vs. range of values Fewer bits limits the range of values that can be represented More bits requires increased cost in computer hardware to represent numbers 216 = 65,53510 232 = 4,294,967,29610 264 = 18,446,744,073,709,551,61610
Goals of Data Representation Accuracy (Precision) Precision of representation increases with number of data bits used Trade-off: hardware cost vs. precision Fewer bits limits the precision of values that are represented More bits requires increased cost in computer hardware to represent numbers precisely Calculations can easily produce numbers too big or too small to represent precisely So, they are represented as approximations that have a predictable error
Goals of Data Representation Ease of Manipulation Machine efficiency increases when processing shorter and simpler numeric formats Trade-off: processing time vs. precision Processor efficiency depends on its complexity Shorter and simpler formats require simpler circuitry More precise formats require increased cost in computer hardware to process instructions
Goals of Data Representation Standardization Standardized data formats increases speed and accuracy of data communications Trade-off: processing time vs. networking The most efficient circuitry may require non-standard data formats To share information between a wide variety of devices, standardized data formats need to be used
CPU Data Types Primitive data types Integer Real number Character Boolean Memory address Representation format for each type balances compactness, accuracy, ease of manipulation, and standardization
Memory Addresses Identifying numbers of memory bytes in primary storage Simple or complex numeric values depending on memory model used by CPU Flat memory addresses single integer Segmented memory addresses multiple integers requires definition of specific coding format
Intel Memory Address Formats 8088 20-bit memory addresses 4-bit segment identifier 16-bit segment offset 80286 24-bit memory addresses 8-bit segment identifier 80386 32-bit memory addresses 16-bit segment identifier 80486 Pentium
Data Structures Related groups of primitive data elements organized for a type of common processing Defined and manipulated within software Many use pointers to link primitive data components
Commonly Used Data Structures arrays linked lists records tables files indices objects
One Address Finds Many Data Elements
Pointers and Addresses Data element that contains the address of another data element Address Location of a data element within a storage device
Arrays and Lists List A set of related data values Array An ordered list in which each element can be referenced by an index to its position
A simple array is used to store words
Linked Lists Data structures that use pointers so list elements can be scattered among nonsequential storage locations Singly linked lists Doubly linked lists Easier to expand or shrink than an array
A Singly Linked List
A Singly Linked List
Editing An Array
Editing A Singly Linked List
A Doubly Linked List
Records and Files Records Data structures composed of other data structures or primitive data elements Used as a unit of input and output to files Files Sequence of records on secondary storage
A Record Data Structure
Methods of Organizing Files Sequential Stores records in contiguous storage locations Indexed An array of pointers to records Efficient record insertion, deletion, and retrieval
An Indexed File
Classes and Objects Classes Data structures that contain traditional data elements and programs that manipulate that data Combine related data items and extend the record to include methods that manipulate the data items Objects One instance, or variable, of the class
A Class of Objects
Summary How data is represented and stored within computer hardware How simple data types are used as building blocks to create more complex data structures (e.g., arrays, records) Understanding data representation is key to understanding hardware and software technology
Chapter Goals Describe numbering systems and their use in data representation Compare and contrast various data representation methods Describe how nonnumeric data is represented Describe common data structures and their uses