CH 2
CH 2
CH 2
06/06/2024 1
Data Representation
Computers use digital representation
Based on a binary system (uses on/off states
to represent 2 digits).
ALL data (no matter how complex) must be
represented in memory as binary digits (bits).
06/06/2024 2
Number systems and computers
• Computers store all data as binary digits, but
we may need to convert this to a number
system we are familiar with.
• Computer programs and data are often
represented (outside the computer) using
octal and hexadecimal number systems
because they are a short hand way of
representing binary numbers.
06/06/2024 3
Number Systems - Decimal
The decimal system is a base-10 system.
There are 10 distinct digits (0 to 9) to represent
any quantity.
For an n-digit number, the value that each digit
represents depends on its weight or position.
The weights are based on powers of 10.
1024 = 1*103 + 0*102 + 2*101 + 4*100 = 1000 +
20 + 4
06/06/2024 4
Number Systems - Binary
• The binary system is a base-2 system.
• There are 2 distinct digits (0 and 1) to represent
any quantity.
• For an n-digit number, the value of a digit in
each column depends on its position.
• The weights are based on powers of 2.
• 10112 = 1*23 + 0*22 + 1*21 + 1*20 =8+2+1 =1110
06/06/2024 5
Number Systems - Octal
• Octal and hexadecimal systems provide a shorthand way
to deal with the long strings of 1’s and 0’s in binary.
• Octal is base-8 system using the digits 0 to 7.
• To convert to decimal, you can again use a column
weighted system 75128 = 7*83 + 5*82 + 1*81 + 2*80 =
391410
• An octal number can easily be converted to binary by
replacing each octal digit with the corresponding group
of 3 binary digits
• 75128 = 1111010010102
06/06/2024 6
Number Systems - Hexadecimal
Hexadecimal is a base-16 system.
It contains the digits 0 to 9 and the letters A to
F (16 digit values).
The letters A to F represent the unit values 10
to 15.
To convert to decimal, use a weighted system
with powers of 16.
06/06/2024 7
Number Systems - Hexadecimal
• Conversion to binary is done the same way as
octal to binary conversions.
• This time though the binary digits are
organized into groups of 4.
• Conversion from binary to hexadecimal
involves breaking the bits into groups of 4 and
replacing them with the hexadecimal
equivalent.
06/06/2024 8
Example #1
Value of 2001 in Binary, Octal and Hexadecimal
06/06/2024 9
Example #2
Conversion: Binary -> Octal ->Hexadecimal
06/06/2024 10
Decimal to BaseN Conversions
• To convert from decimal to a different number
base such as Octal, Binary or Hexadecimal
involves repeated division by that number
base
• Keep dividing until the quotient is zero
• Use the remainders in reverse order as the
digits of the converted number
06/06/2024 11
Example #3
Decimal to Binary 1492 (decimal) = ??? (binary) Repeated Divide by 2
06/06/2024 12
BaseN to Decimal Conversions
• Multiply each digit by increasing powers of the
base value and add the terms
• Example: = ??? (decimal)
06/06/2024 13
Data Representation
• Computers store everything as binary digits. So,
how can we encode numbers, images, sound,
text??
• We need standard encoding systems for each
type of data.
• Some standards evolve from proprietary
products which became very popular.
• Other standards are created by official industry
bodies where none previously existed.
06/06/2024 14
Alphanumeric Data
• Alphanumeric data such as names and addresses are
represented by assigning a unique binary code or
sequence of bits to represent each character.
• As each character is entered from a keyboard (or
other input device) it is converted into a binary code.
• Character code sets contain two types of characters:
– Printable (normal characters): such as letters, numbers,
punctuation marks
– Non-printable. Characters used as control codes.
• CTRL G (beep)
06/06/2024 15
Alphanumeric Codes
Characters are represented internally by these 8-bit binary
codes.
An 8-bit memory word can thus store one character.
A 16-bit memory word is usually divided into two 8-bit
segments or bytes.
Each of which can store a single character. Similarly, a 32-bit
memory word can store four characters.
Character strings of length greater than the number of bytes
in a word are stored in two or more consecutive words.
• There are 3 main coding methods in use:
• ASCII, EBCDIC ,Unicode .
06/06/2024 16
ASCII
(American Standard Code for Information Interchange)
06/06/2024 18
EBCDIC
(Extended Binary Coded Decimal Interchange Code).
06/06/2024 20
Numeric Data
Need to perform computations
Need to represent only numbers
Using ASCII coded digits is very inefficient
Representation depends on nature of the data and
processing requirements
Display purposes only (no computations): CHAR
• PRINT 125.00
– Computation involving integers: INT
• COMPUTE 16 / 3 = 5
– Computation involving fractions: FLOAT
• COMPUTE 2.001001 * 3.012301 = 6.0276173133
06/06/2024 21
Representing Numeric Data
• Stored within the computer using one of several different
numeric representation systems
• Derived from the binary (base 2) number system.
• We can represent unsigned numbers from 0-255 just using 8
bits
• Or in general we can represent values from 0 to 2N -1 using N
bits.
• The maximum value is restricted by the number of bits
available (called Truncation or Overflow)
• However, most programming languages support manipulation
of signed and fractional numbers.
– How can these be represented in binary form?
06/06/2024 22
Representing Numeric Data
Range of Values 0 to 2N-1 in N bits
06/06/2024 23
Binary Arithmetic
Binary Addition
06/06/2024 24
Example 1: Binary Addition
10101
11011
110000
06/06/2024 25
Exercise on Addition
06/06/2024 26
Binary Subtraction
06/06/2024 27
Example 1: Binary Subtraction
06/06/2024 28
Exercise
• Exercise 1: 1 0 subtract 1
– Ans : 01
• Exercise 2: 100 subtract 10
– Ans : 010
• Exercise 3 : 100 subtract 1
– Ans : 011
06/06/2024 29
Binary Multiplication
• Binary multiplication is similar to decimal multiplication.
• It is simpler than decimal multiplication because only 0s and
1s are involved.
• There are four rules of binary multiplication.
06/06/2024 30
Binary Division
• Binary division is similar in procedure to decimal division.
• The placement of the binary point is exactly the same as the
placement of the decimal point in decimal division.
06/06/2024 31
Integer Representation
• UNSIGNED representing numbers from 0 upwards or
SIGNED to allow for negatives.
• In the computer we only have binary digits, so to
represent negative integers we need some sort of
convention.
• Four conventions in use for representing negative
integers are:
– Sign and Magnitude
– 1’s Complement
– 2’s Complement
– Excess 128
06/06/2024 32
Negative Integers – Sign and Magnitude
Simplest form of representation
Stores positive and negative values by dividing the “n” total
bits into two parts: 1 bit for the sign and n–1 bits for the
value which is a pure binary number
Example:
– +6 in 8-bit representation is: 00000110
– -6 in 8-bit representation is: 10000110
Disadvantages
– Arithmetic is difficult
– Two representations for zero
• 00000000
• 10000000
06/06/2024 33
Negative Integers – One’s (1’s) Complement
06/06/2024 34
Negative Integers – One’s (1’s) Complement
06/06/2024 36
One’s Complement Example cont.
• Case II: When the negative number has
greater magnitude.
06/06/2024 37
Negative Integers – Two’s (2’s) Complement
• Two’s Complement
–To convert an integer to 2’s complement
Take the binary form of the number
00000110 (6 as an 8-bit representation)
Flip the bits: (Find 1’s Complement)
11111001
Add 1 11111001 +1 = 11111010 (2’s complement of 6)
Justification of representation: 6+(-6)=0?
00000110 (6)
+11111010 (2’s complement of 6)
100000000 (0)
06/06/2024 39
Negative Integers – Two’s (2’s) Complement
•Addition
–Addition is performed by adding corresponding bits
00000111 ( 7)
+00000101 (+5)
00001100 (12)
•Subtraction –Subtraction is performed by adding the 2’s
complement
–Ignore End-Around-Carry
00001100 (12)
+11111011 (-5)
100000111 ( 7)
06/06/2024 41
Negative Integers – Two’s (2’s) Complement
06/06/2024 42
Integer Overflow
• Problem: A result of an artihematic operation that is too big to
be represented in number of bits available. This is called
overflow.
• Overflow can occur whether or not there is a carry
Example:
06/06/2024 43
Basics of digital logic gates and Boolean algebra
06/06/2024 44
Logic Gates & Truth Tables
06/06/2024 45
06/06/2024 46
Other Logic Gates – NAND Gate
• 2-input NAND (NOT-AND operation)
• Can have any # of inputs
06/06/2024 47
Other Logic Gates – NOR Gate
• 2-input NOR (NOT-OR operation)
• Can have any # of inputs
06/06/2024 48
Other Logic Gates – XOR Gate
• 2-input XOR Output is 1 if any input is one and
the other input is 0
• Can have any # of inputs
06/06/2024 49
Other Logic Gates – XNOR Gate
06/06/2024 50
An overview of computer architecture
06/06/2024 51
Basics of Computer organization and
architecture
Computer Architecture
• refers to those attributes of a system that have a direct impact
on the logical execution of a program.
• Examples:
– the instruction set
– the number of bits used to represent various data types
– I/O mechanisms
– memory addressing techniques
• Architecture is those attributes visible to the programmer
– e.g. Is there a multiply instruction?
• All Intel x86 family share the same basic architecture
06/06/2024 52
Basics of Computer organization and
architecture
Computer Organization
• refers to the operational units and their interconnections
that realize the architectural specifications.
• Examples are things that are transparent to the
programmer:
– control signals
– interfaces between computer and peripherals
– the memory technology being used
• Organization is how features are implemented
– e.g. Is there a hardware multiply unit or is it done by
repeated addition?
06/06/2024 53
The Computer Level Hierarchy Level
Hierarchy
• Writing complex programs requires a “divide and
conquer” approach, where each program module
solves a smaller problem.
06/06/2024 54
…. Cont
• Each virtual machine layer is an abstraction of
the level below it.
• The machines at each level execute their own
particular instructions, calling upon machines at
lower levels to perform tasks as required.
• Computer circuits ultimately carry out the work.
06/06/2024 55
06/06/2024 56
…….cont
• Level 6: The User Level
– Program execution and user interface level.
– The level with which we are most familiar.
06/06/2024 57
……cont
• Level 4: Assembly Language Level
– Acts upon assembly language produced from Level
5, as well as instructions programmed directly at
this level.
• Level 3: System Software Level
– Controls executing processes on the system.
– Protects system resources.
– Assembly language instructions often pass
through Level 3 without modification.
06/06/2024 58
……cont
• Level 2: Machine Level
– Also known as the Instruction Set
Architecture (ISA) Level.
– Consists of instructions that are particular
to the architecture of the machine.
– Programs written in machine language need
no compilers, interpreters, or assemblers.
06/06/2024 59
……cont.
• Level 1: Control Level
– A control unit decodes and executes instructions
and moves data through the system.
– Control units can be micro-programmed or
hardwired.
– A micro-program is a program written in a low-
level language that is implemented by the
hardware.
– Hardwired control units consist of hardware that
directly executes machine instructions.
06/06/2024 60
…….cont
• Level 0: Digital Logic Level
– This level is where we find digital circuits (the
chips).
– Digital circuits consist of gates and wires.
– These components implement the mathematical
logic of all other levels.
06/06/2024 61