CENG240-2021 Week2 The World of PL and Data Representation

Download as pdf or txt
Download as pdf or txt
You are on page 1of 72

METU Computer Engineering

CEng 240 – Spring 2021


Week 2
Sinan Kalkan

A Broad Look at Programming and PL,


Representation of data in computers
Disclaimer: Figures without reference are from either from “Introduction to programming concepts
with case studies in Python” or “Programming with Python for Engineers”, which are both co-authored
by me.
0!
Introduction to the Course
24
NG
CE https://ceng240.github.io/
on
METU Computer Engineering

ly
us

¢ Objectives
vio

§ This course gives a brief introduction to a working understanding of basic computer


Pre

organization, data representation, programming language constructs, and algorithmic


thinking. It is designed as a first course of programming and supported by laboratory
sessions for students outside of the Computer Engineering major.
¢ Textbook
§ Programming with Python for Engineers, by S. Kalkan, O. T. Şehitoğlu and G. Üçoluk.
Available at: https://pp4e-book.github.io/
¢ Course conduct
§ Weekly pre-recorded lectures released before the week.
§ 2-hour live sessions with instructors.
§ Office hours with the assistants.
§ Lab exams.
§ Midterm exam and final exam.

2021 S. Kalkan - CEng 240 2


0!
What is a computer?
24
NG
CE
on
METU Computer Engineering

ly
us

The most common


vio

¢
Pre

context: An electronic
device that has a
‘microprocessor’ in it.
§ Binary

¢ The broader context: Any


physical entity that can
do ‘computation’. https://en.m.wikipedia.org/wiki/File:Computer_fr
om_inside_018.jpg

2021 S. Kalkan - CEng 240 3


0!
What is programming?
24
NG
CE
on
METU Computer Engineering

ly
us
vio
Pre

2021 S. Kalkan - CEng 240 4


0!
Von Neumann Architecture
24
NG
CE
on
METU Computer Engineering

ly
us
vio
Pre

2021 S. Kalkan - CEng 240 5


0!
Memory
24
NG
CE
on
METU Computer Engineering

ly
us

Random Access Memory


vio

¢
Pre

(RAM)
¢ Allows reading and writing
operations
¢ Each access requires an
address

2021 S. Kalkan - CEng 240 6


0!
Fetch, decode, execute cycle
24
NG
CE
on
METU Computer Engineering

ly
us

Fetch
vio

¢
Pre

§ Retrieve the next instruction


from the memory
¢ Decode
§ Look at the opcode of the
instruction and decode what
actions should be performed.
¢ Execute
§ Execute the actions identified
in the decode phase.

2021 S. Kalkan - CEng 240 7


0!
OS
24
NG
CE
on
METU Computer Engineering

ly
us
vio
Pre

From: “Invitation to Computer Science”


book by G. M. Schneider, J. L. Gersting
¢ Memory management
¢ Process management
¢ Device management
¢ File management
¢ Security
¢ User interface
2021 S. Kalkan - CEng 240 8
This Week
METU Computer Engineering

¢ A Broad Look at Programming and PL (CH2)


§ Concept of Algorithm, Comparing algorithms, World of PLs,
Low-High level PL, Interpreter vs Compiler, Programming
Paradigms, Python as a PL

¢ Representation of data in computers (CH3)


§ Two’s complement representation of integers, IEEE
floating-point representation, Information loss with
Floating Points, representation of characters, text and
Boolean.

2021 S. Kalkan - CEng 240 9


Administrative Notes
METU Computer Engineering

¢ Quiz 1 announced!
¢ Labs starting in two weeks.
¢ Midterm: 1 June, Tuesday, 17:40

2021 S. Kalkan - CEng 240 10


METU Computer Engineering

2021 S. Kalkan - CEng 240 11


METU Computer Engineering

Concept of Algorithm, Comparing algorithms, World of PLs, Low-High


level PL, Interpreter vs Compiler, Programming Paradigms, Python as a PL

A BROAD LOOK AT PROGRAMMING


AND PL (CH2)

2021 S. Kalkan - CEng 240 12


What does ‘algorithm’ mean?
METU Computer Engineering

¢ “A procedure or formula for solving a


problem”
¢ “A set of instructions to be followed to
solve a problem”
¢ “an effective method expressed as a finite
list of well-defined instructions for
calculating a function”
¢ “step-by-step procedure for calculations”
2021 S. Kalkan - CEng 240 13
A formal definition of algorithm
METU Computer Engineering

¢ “Starting from an initial state and initial


input (perhaps empty), the instructions
describe a computation that, when
executed, will proceed through a finite
number of well-defined successive states,
eventually producing "output" and
terminating at a final ending state.”

2021 S. Kalkan - CEng 240 14


What is an algorithm?
METU Computer Engineering

n An algorithm is a list that looks like


q STEP 1: Do something
q STEP 2: Do something
q STEP 3: Do something
q . .
q . .
q . .
q STEP N: Stop, you are finished
From “Invitation to Computer Science”
2021 S. Kalkan - CEng 240 15
Valid Operations in Algorithms
METU Computer Engineering

¢ Sequential – simple well-defined task,


usually declarative sentence.
¢ Conditional- “ask a question and select
the next operation on the basis of the
answer to the question – usually an “if-
then” or “if then else”
¢ Iterative- “looping” instructions – repeat a
set of instructions
From “Invitation to Computer Science”
2021 S. Kalkan - CEng 240 16
METU Computer Engineering

From “Invitation to Computer Science”


2021 S. Kalkan - CEng 240 17
An example algorithm
from our daily lives
METU Computer Engineering

From “Invitation to Computer Science”


2021 S. Kalkan - CEng 240 18
Describing algorithms
METU Computer Engineering

Option 1: Use pseudo-code descriptions.

Algorithm. Calculate the average of numbers provided by the user.

Input: N -- the count of numbers


Output: The average of N numbers to be provided

Step 1: Get how many numbers will be provided and store that in N
Step 2: Create a variable named Result with initial value 0
Step 3: Execute the following step N times:
Step 4: Get the next number and add it to Result
Step 5: Divide Result by N to obtain the average

2021 S. Kalkan - CEng 240 19


Describing
algorithms
METU Computer Engineering

Option 2: Use flow-charts.

2021 S. Kalkan - CEng 240 20


Comparing Algorithms
METU Computer Engineering

¢ Rougly count the main number of steps in


terms of 𝑛, the ‘size’ of the problem.
¢ Example: Guess my number!
§ Random guessing
§ Sweeping from beginning
§ Middle guessing

2021 S. Kalkan - CEng 240 21


Comparing Algorithms
METU Computer Engineering

2021 S. Kalkan - CEng 240 22


The World of Programming
Languages
METU Computer Engineering

2021 S. Kalkan - CEng 240 23


Interpreter vs. Compiler
METU Computer Engineering

2021 S. Kalkan - CEng 240 24


Interpreter vs. Compiler
METU Computer Engineering

2021 S. Kalkan - CEng 240 25


PL Paradigms
METU Computer Engineering

¢ Imperative
¢ Functional
¢ Object-oriented
¢ Logical-declarative
¢ Concurrent
¢ Event-driven

2021 S. Kalkan - CEng 240 26


METU Computer Engineering

MEET
Guido van Rossum (1956 - )

2021 S. Kalkan - CEng 240 27


METU Computer Engineering

¢ Zen of Python [https://en.wikipedia.org/wiki/Zen_of_Python]


§ Beautiful is better than ugly.
§ Explicit is better than implicit.
§ Simple is better than complex.
§ Complex is better than complicated.
§ Flat is better than nested.
§ Sparse is better than dense.
§ Readability counts.
§…
2021 S. Kalkan - CEng 240 28
METU Computer Engineering

¢ An interpretive/scripting PL that:
§ Longs for code readability
§ Ease of use, clear syntax
§ Wide range of applications, libraries, tools
¢ Multiple Paradigms:
§ Functional
§ Imperative
§ Object-oriented

2021 S. Kalkan - CEng 240 29


METU Computer Engineering

¢ Started at the end of 1980s.


¢ V2.0 was released in 2000
§ With a big change in development perspective:
Community-based
§ Major changes in the facilities.
¢ V3.0 was released in 2008
§ Backward-incompatible
§ Some of its features are put into v2.6 and v2.7.

2021 S. Kalkan - CEng 240 30


METU Computer Engineering

¢ Where does the name come from?


§ While van Possum was developing
Python, he read the scripts of Monty
Python’s Flying Circus and thought
‘python’ was “short, unique and
mysterious” for the new language [1]
¢ One goal of Python: “fun to use”
§ The origin of the name is the comedy
group “Monty Python”
§ This is reflected in sample codes that
are written in Python by the original
developers.
2021 [1] https://docs.python.org/2/faq/general.html#why-is-it-called-python 31
METU Computer Engineering

2021 S. Kalkan - CEng 240 32


METU Computer Engineering

2021 S. Kalkan - CEng 240 33


METU Computer Engineering

Two’s complement representation of integers, IEEE floating-point


representation, Information loss with Floating Points, representation of
characters, text and Boolean.

REPRESENTATION OF DATA IN
COMPUTERS (CH3)
2021 S. Kalkan - CEng 240 34
Data Representation
METU Computer Engineering

¢ Based on 1s and 0s
§ So, everything is represented as a set of binary
numbers
¢ We will now see how we can represent:
§ Integers: 3, 1234435, -12945 etc.
§ Floating point numbers: 4.5, 124.3458, -1334.234
etc.
§ Characters: /, &, +, -, A, a, ^, 1, etc.
§…

2021 S. Kalkan - CEng 240 35


Binary Representation of Numeric
Information
METU Computer Engineering

¢ Decimal numbering system


§ Base-10
§ Each position is a power of 10
3052 = 3 x 103 + 0 x 102 + 5 x 101 + 2 x 100

¢ Binary numbering system


§ Base-2
§ Uses ones and zeros
§ Each position is a power of 2
1101 = 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20
2021 S. Kalkan - CEng 240 36
Decimal-to-binary Conversion
METU Computer Engineering

¢ Divide the number until zero:


§ 35 / 2 = 17x2 + 1
§ 17 / 2 = 8x2 + 1
§ 8 / 2 = 4x2 + 0
§ 4 / 2 = 2x2 + 0
§ 2 / 2 = 1x2 + 0

¢ Therefore, 35 has the binary representation: 100011

2021 S. Kalkan - CEng 240 37


Binary Representation of Numeric
Information (continued)
METU Computer Engineering

¢ Representing integers
§ Decimal integers are converted to binary integers
§ Question: given k bits, what is the value of the largest
integer that can be represented?
§ 2k - 1
§ Ex: given 4 bits, the largest is 24-1 = 15

¢ Signed integers must also represent the sign (positive


or negative) - Sign/Magnitude notation

2021 S. Kalkan - CEng 240 38


Binary Representation of Numeric
Information (continued)
METU Computer Engineering

¢ Sign/magnitude notation
1 101 = - 5
0 101 = + 5
¢ Problems:
§ Two different representations for 0:
§ 1 000 = -0
§ 0 000 = +0
§ Addition & subtraction require a watch for the
sign! Otherwise, you get wrong results:
§ 0 010 (+2) + 1 010 (-2) = 1 100 (-4)

2021 S. Kalkan - CEng 240 39


Arithmetic in Computers is
Modular
METU Computer Engineering

Let’s add two numbers in binary


(Assume that there is no sign bit)
1 0 1 1 11 !"

+
1 1 1 0
+ 14 !"

1 1 0 0 1 9 !"

In other words:
• Numbers larger than or equal to 16 (2! ) are discarded in a 4-bit representation.
• Therefore, 11 + 14 yields 9 in this 4-bit representation.
• This is actually modular arithmetic:
11 + 14 𝑚𝑜𝑑 16 ≡ 9 𝑚𝑜𝑑 16

2021 S. Kalkan - CEng 240 40


Binary Representation of Numeric
Information (continued)
METU Computer Engineering

¢ Two’s complement instead of sign-magnitude


representation
§ Positive numbers have a leading 0.
§ 5 => 0101
§ The representation for negative numbers is found by
subtracting the absolute value from 2N for an N-bit system:
§ -5 => 24 – 5 = 16 – 5 = (11)10 => (1011)2
¢ Advantages:
§ 0 has a single representation: +0 = 0000, -0 = 0000
§ Arithmetic works fine without checking the sign bit:
§ 1011 (-5) + 0110 (6) = 0001 (1)
§ 1011 (-5) + 0011 (3) = 1110 (-2)

2021 S. Kalkan - CEng 240 41


Binary Representation of Numeric
Information (continued) Binary
Number
Decimal
Value
Value in
Two’s
Complement
METU Computer Engineering

¢ Shortcut to convert from “two’s 0000 0 0


0001 1 1
complement” :
0010 2 2
§ If the leading bit is zero, no need to 0011 3 3
convert. 0100 4 4
§ If the leading bit is one, invert the 0101 5 5
number and add 1. 0110 6 6

¢ What is our range? 0111 7 7


1000 8 -8
§ With 2’s complement we can represent
1001 9 -7
numbers from -2N-1 to 2N-1 - 1
1010 10 -6
using N bits.
1011 11 -5
§ 8 bits: -128 to +127. 1100 12 -4
§ 16 bits: -32,768 to +32,767. 1101 13 -3
§ 32 bits: -2,147,483,648 to 1110 14 -2
+2,147,483,647. 1111 15 -1

2021 S. Kalkan - CEng 240 42


Binary Representation of Numeric
Information (continued)
METU Computer Engineering

¢ Example:
§ We want to compute: 12 – 6
§ 12 => 01100
§ -6 => -(00110) => (11001)+1 => (11010)
¢ 12 – 6 =
01100 So, addition and subtraction operations
+ 11010 are simpler in the Two’s Complement
----------- representation
00110 => 6

2021 S. Kalkan - CEng 240 43


Binary Representation of Numeric
Information (continued)
METU Computer Engineering

¢ Due to its advantages, two’s complement is


the most common way to represent integers
on computers.

2021 S. Kalkan - CEng 240 44


Why does Two’s Complement
work?
METU Computer Engineering

§ Inversion and addition of a 1-bit correspond effectively


to subtraction from 0 – i.e., negative of a number.
§ Negative of a binary number X: (00…00)2 - (X)2
§ Note that (00…00)2 = (11…11)2 + (1)2
§ In other words:
§ (00…00)2 - (X)2 = (11…11)2- (X)2 + (1)2.
(i.e., how we find two’s complement)

Inversion
2021 S. Kalkan - CEng 240 45
Why does Two’s Complement
work?
METU Computer Engineering

¢ A 2nd perspective:
§ i - j mod 2N = i + (2N-j) mod 2N
§ Example:
§ Consider X and Y are positive numbers.
§ 𝑋 + −𝑌 = 𝑋 + 2" − 𝑌
= 2" − (𝑌 − 𝑋) = −(𝑌 − 𝑋) = 𝑋 − 𝑌

2021 S. Kalkan - CEng 240 46


Why does Two’s Complement
work?
METU Computer Engineering

¢ A smart trick used in mechanical


calculators
§ To subtract 𝑏 from 𝑎, invert 𝑏 and
add that to 𝑎. Then discard the most
significant digit.

http://en.wikipedia.org/wiki/Method_of_complements
2021 S. Kalkan - CEng 240 47
Binary Representation of Real Numbers
METU Computer Engineering

Conversion of the digits after the dot into binary:

¢ 1st Way:
§ 0.375 à 0x½ + 1x¼ + 1x1/8 à 011

¢ 2nd Way:
§ Multiply by 2 and get the integer part until we get ‘0’
after the dot:
§ 0.375 x 2 = 0.750 = 0 + 0.750
§ 0.750 x 2 = 1.500 = 1 + 0.500
§ 0.500 x 2 = 1.000 = 1 + 0.000

2021 S. Kalkan - CEng 240 48


Binary Representation of Real Numbers
METU Computer Engineering

¢ Approach 1: Use fixed-point


§ Similar to integers, except that there is a decimal
point.
§ E.g.: using 8 bits:
1 1 1 1 1 1 1 1 = 1×23 + 1×22 + 1×21 + 1×20 + 1×2-1 + 1×2-2 + 1×2-3 + 1×2-4
= 15.9375

Assumed decimal point

2021 S. Kalkan - CEng 240 49


Binary Representation of Real Numbers
METU Computer Engineering

¢ Location of the decimal point changes the


value of the number.
§ E.g.: using 8 bits:

1 1 1 1 1 1 1 1 = 1×24 + 1×23 + 1×22 + 1×21 + 1×20


1×2-1 + 1×2-2 + 1×2-3 = 31.875

Assumed decimal point

2021 S. Kalkan - CEng 240 50


Binary Representation of Real Numbers
METU Computer Engineering

¢ Problems with fixed-point:


§ Limited in the maximum and minimum values that
can be represented.
§ For instance, using 32-bits, reserving 1-bit for the
sign and putting the decimal point after 16 bits
from the right, the maximum positive value that
can be stored is slightly less than 215.
§ Allowing larger values gives away from the
precision (the decimal part).

2021 S. Kalkan - CEng 240 51


Binary Representation of Real Numbers
METU Computer Engineering

¢ Solution: Use scientific notation: a x 2b (or ±M x B±E)


§ Example: 5.75
§ 5 à 101
§ 0.75 à ½ + ¼ à 2-1+2-2 à (0.11)2
§ 5.75 à (101.11)2 x 20
¢ Number is then normalized so that the first significant
digit is immediately to the left of the binary point
§ Example: 1.0111 x 22
¢ We take and store the mantissa and the exponent.

2021 S. Kalkan - CEng 240 52


Binary Representation of Real Numbers
METU Computer Engineering

¢ This needs some standardization for:


§ where to put the decimal point
§ how to represent negative numbers
§ how to represent numbers less than 1

2021 S. Kalkan - CEng 240 53


IEEE 32bit Floating-Point Number
Representation
METU Computer Engineering

• M x 2E 2 − 2#$% ×2&$'
• Exponent (E): 8 bits
• Add 127 to the exponent value before storing it
• E can be 0 to 255 with 127 representing the real
zero.
• Fraction (M - Mantissa): 23 bits
• 2128 = 1.70141183 × 1038

2021 S. Kalkan - CEng 240 54


IEEE 32bit Floating-Point Number
Representation
METU Computer Engineering

• Example: 12.375
• The digits before the dot:
• (12)10 à (1100)2
• The digits after the dot:
• 1st Way: 0.375 à 0x½ + 1x¼ + 1x1/8 à 011
• 2nd Way: Multiply by 2 and get the integer part until 0:
• 0.375 x 2 = 0.750 = 0 + 0.750
• 0.750 x 2 = 1.50 = 1 + 0.50
• 0.50 x 2 = 1.0 = 1 + 0.0
• (12.375)10 = (1100.011)2
• NORMALIZE (move the point): (1100.011)2= (1.100011)2x23
• Exponent: 3, adding 127 to it, we get 1000 0010
• Fraction: 100011
• Then our number is: 0 10000010 10001100000000000000000
2021 S. Kalkan - CEng 240 55
Why add bias to Binary
Number
Decimal
Value
Value in Two’s
Complement
Value with
bias 7

the exponent?
0000 0 0 -7
0001 1 1 -6
METU Computer Engineering

0010 2 2 -5
0011 3 3 -4

¢ It helps in comparing 0100


0101
4
5
4
5
-3
-2
the exponents of the 0110 6 6 -1

same-sign real- 0111 7 7 0


1000 8 -8 1
numbers without 1001 9 -7 2

looking out for the sign 1010 10 -6 3

of the exponent. 1011


1100
11
12
-5
-4
4
5
1101 13 -3 6
1110 14 -2 7
1111 15 -1 8
To read more on this:
https://blog.angularindepth.com/the-mechanics-behind-exponent-bias-in-floating-point-9b3185083528

2021 S. Kalkan - CEng 240 56


IEEE 32bit Floating-Point Number
Representation
METU Computer Engineering

¢ Zero: ¢ Not a number (NaN):


§ Exponent: All zeros § Exponent: All ones
§ Fraction: All zeros § Fraction: non-zero
§ +0 and -0 are different fraction.
numbers but they are
equal!
¢ Infinity:
§ Exponent: All ones
§ Fraction: All zeros

http://steve.hollasch.net/cgindex/coding/ieeefloat.html
2021 S. Kalkan - CEng 240 57
IEEE 32bit Floating-Point Number
Representation
METU Computer Engineering

¢ What is the maximum positive IEEE floating point


value that can be stored?
§ Just less than 2128 [ 2 − 2456 ×2!57 to be specific]
§ Why? 2128 is reserved for NaN.

¢ Check out these useful links:


§ http://steve.hollasch.net/cgindex/coding/ieeefloat.html
§ http://babbage.cs.qc.cuny.edu/IEEE-
754.old/Decimal.html

2021 S. Kalkan - CEng 240 58


IEEE 32bit Floating-Point Number
Representation
METU Computer Engineering

¢ Now consider 4.1: ¢ So,


§ 4 => (100)2 § Representing a
§ 0.1 => fraction which is a
§ x 2 = 0.2 = 0 + 0.2
multiple of 1/2n is
§ x 2 = 0.4 = 0 + 0.4
§ x 2 = 0.8 = 0 + 0.8
lossless.
§ x 2 = 1.6 = 1 + 0.6 § Representing a
§ x 2 = 1.2 = 1 + 0.2 fraction which is not
x 2 = 0.4 = 0 + 0.4
§
a multiple of 1/2n
§ x 2 = 0.8 = 0 + 0.8
leads to precision
§ …….
loss.
2021 S. Kalkan - CEng 240 59
Representing Real Numbers:
Information Loss
METU Computer Engineering

2021 S. Kalkan - CEng 240 60


Representing Real Numbers:
Information Loss
METU Computer Engineering

¢ What can you do?


1. It is in your best interest to refrain from using floating points. If it is possible
transform the problem to the integer domain.
2. Use the most precise type of floating point provided by your high-level
language, some languages provide you with 64 bit or even 128 bit floats, use
them.
3. Use less precision floating points only when you are in short of memory.
4. Subtracting two floating points close in value has a potential danger.
5. If you add or subtract two numbers which are magnitude-wise not
comparable (one very big the other very small), it is likely that you will lose
the proper contribution of the smaller one. Especially when you iterate the
operation (repeat it many times), the error will accumulate.
6. You are strongly advised to use well-known, commonly used scientific
computing libraries instead of coding floating point algorithms by yourself.

2021 S. Kalkan - CEng 240 61


Numbers in Python
METU Computer Engineering

¢ Integers
¢ Floating point numbers
¢ Complex numbers

2021 S. Kalkan - CEng 240 62


Representing Boolean Values
METU Computer Engineering

¢ The CPU often needs to compare numbers, or


data:
§ 3 >? 4
§ 125 =? 1000/8
§ 3 ≤? 12345.34545/12324356.0
¢ We have the truth values for representing the
answers to such comparisons:
§ If correct: TRUE, True, true, T, 1
§ If not correct: FALSE, False, false, F, 0
2021 S. Kalkan - CEng 240 63
Binary Representation of Textual
Information
METU Computer Engineering

§ ASCII (American Standard Code for Information


Interchange) code set
§ Originally: 7 bits per character; 128 character codes

§ Unicode code set


§ 16 bits per character

§ UTF-8 (Universal Character Set Transformation


Format) code set.
§ Variable number of 8-bits.

2021 S. Kalkan - CEng 240 64


Binary Representation of Textual Information (cont’d)
Decimal Binary Val. Hex. Unicode Charac.
48 00110000 0 0x30 0x0030 0
METU Computer Engineering

49 00110001 1 0x31 0x0031 1


50 00110010 2 0x32 0x0032 2
51 00110011 3 0x33 0x0033 3
52 00110100 4 0x34 0x0034 4
53 00110101 5 0x35 0x0035 5
54 00110110 6 0x36 0x0036 6

ASCII 55 00110111 7 0x37 0x0037 7 Unicode


7 bits long 56 00111000 8 0x38 0x0038 8 16 bits long
57 00111001 9 0x39 0x0039 9
58 00111010 : 0x3A 0x003A :
59 00111011 ; 0x3B 0x003B ;
60 00111100 < 0x3C 0x003C <
61 00111101 = 0x3D 0x003D =
62 00111110 > 0x3E 0x003E >
Partial
63 00111111 ? 0x3F 0x003F ?
listings
64 01000000 @ 0x40 0x0040 @
only!
65 01000001 A 0x41 0x0041 A
66 01000010 B 0x42 0x0042 B

2021 S. Kalkan - CEng 240 65


UTF-8 Illustrated
Last code
Bits Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6
METU Computer Engineering

point
7 U+007F 0xxxxxxx
11 U+07FF 110xxxxx 10xxxxxx
16 U+FFFF 1110xxxx 10xxxxxx 10xxxxxx
21 U+1FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
26 U+3FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
31 U+7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

Character Binary code Binary UTF-8


$ U+0024 0100100 00100100
¢ U+00A2 00010100010 11000010 10100010
€ U+20AC 0010000010101100 11100010 10000010 10101100
𤭢 U+24B62 000100100101101100010 11110000 10100100 10101101 10100010

2021 S. Kalkan - CEng 240 66


How about a text?
Text in a computer has two alternative
METU Computer Engineering

representations:
1. A fixed-length number representing the length of the text
followed by the binary values of the characters in the text.
§ Ex: “ABC” =>
00000011 01000001 01000001 01000001 (3 ‘A’ ‘B’ ‘C’)
2. Binary values of the characters in the text ended with a
unique marker, like “00000000” which has no value in the
ASCII table.
§ Ex: “ABC” =>
01000001 01000001 01000001 00000000 (‘A’ ‘B’ ‘C’ END)

2021 S. Kalkan - CEng 240 67


Containers
METU Computer Engineering

Width =
¢ If you have lots and lots of one type 4 bytes

of data (for example, the ages of all Address


the people in Turkey):
128
§ You can store them into memory
132
consecutively (supported by most PLs)
136
§ This is called arrays.
§ Easy to access an element. Nth 140
element: ….

§ <Starting-address>+ (N-1)*<Word Width>


§ Ex: 2nd element is at 128 + (2-1) * 4 = 132

2021 S. Kalkan - CEng 240 68


Containers
METU Computer Engineering

¢ What if you have to


make a lot of
deletions and
insertions in the
middle of an array?
¢ Then, you have to
store your data in
blocks/units such
that each unit has
the starting address
of the next
unit/block.

2021 Blocks of Data S. Kalkan - CEng 240 69


Final Words:
Important Concepts
METU Computer Engineering

¢ The world of programming


§ How we solve problems using computers.
§ Algorithms: What they are, how we write them and how we compare them.
§ The spectrum of programming languages.
§ Pros and cons of low-level and high-level languages.
§ Interpretive vs. compilative approach to programming.
§ Programming paradigms.
¢ Representation of data
§ Sign-magnitude notation and two’s complement representation for representing
integers.
§ The IEEE754 standard for representing real numbers.
§ Precision loss in representing floating point numbers.
§ Representing characters with the ASCII table.
§ Representing truth values.

2021 S. Kalkan - CEng 240 70


Final Words:
Reading
METU Computer Engineering

¢ The material at the end of the first chapter.

2021 S. Kalkan - CEng 240 71


METU Computer Engineering

THAT’S ALL FOLKS!


STAY HEALTHY

2021 S. Kalkan - CEng 240 72

You might also like