P1 Sec 1.
1: Data Representation
Denary Number System:
We know decimal or denary number system has (base 10).This uses digits 0 to 9 and has place
values below
Binary number system:
The binary system on computers uses combinations of 0s and 1s and has (base 2).
A typical binary number would be
(10101010)2
Binary place values
You can also break a binary number down into place-value columns, but each column is a power of
two instead of a power of ten.
For example, take a binary number like 1001. The columns are arranged in multiples of 2
with the binary number written below:
By looking at the place values, we can calculate the equivalent denary number.
That is: (1 x 23) + (0 x 22) + (0 x21) + (1x20) = 8+0+0+1
(1 x 8) + (0 x 4) + (0 x 2) + (1 x 1) = 8 + 1
=9
Converting binary to denary
To calculate a large binary number like 10101000 we need more place values of
multiples of 2.
7
∙2 = 128
6
∙ 2 = 64
5
∙ 2 = 32
4
∙ 2 = 16
3
∙2 =8
2
∙2 =4
1
∙2 =2
0
∙2 =1
In denary the sum is calculated as:
(1x27) + (0 x 26) + (1 x 25) + (0 x 24) + (1 x 23) + (0 x 22) + (0 x21) + (0x20) = 168 (1 x
128) + (0 x 64) + (1 x 32) + (0 x 16) + (1 x 8) + (0 x 4) + (0 x 2) + (0 x 1) = 128 + 32 + 8
= 168
Convert between denary:
Converting denary to binary: Method 1
There are two methods for converting a denary (base 10) number to binary (base 2).
This is method one.
Divide by two and use the remainder
Divide the starting number by 2. If it divides evenly, the binary digit is 0. If it does not -
if there is a remainder - the binary digit is 1.
A method of converting a denary number to binary
Worked example: Denary number 83
83 ÷ 2 = 41 remainder 1
41 ÷ 2 = 20 remainder 1
20 ÷ 2 = 10 remainder 0
10 ÷ 2 = 5 remainder 0
5 ÷ 2 = 2 remainder 1
2 ÷ 2 = 1 remainder 0
1 ÷ 2 = 0 remainder 1
Put the remainders in reverse order to get the final number: 1010011.
Converting denary to binary: Method 2
There are two methods for converting a denary (base 10) number to binary (base 2).
This method uses Place Values
Method:2 - Converting a denary number to binary
Worked example: Denary number 84
We need to check which numbers place values can be added to make 84. We will put 1 under the
numbers to e added and 0 under the numbers which are not added.
1. We select Place value 64 so we put 1 under it.
2. We select place value 16 and put 1 under it
3. We selected place value 4 and put 1 under it.
4. Adding 64+16+4 gives us 84 so our number becomes:
64 32 16 8 4 2 1
1 0 1 0 1 0 0
Result: 84 in denary is equivalent to 1010100 in binary.
Bits and binary:
Computers use binary - the digits 0 and 1 - to store data. A binary digit, or bit, is the smallest
unit of data in computing. It is represented by a 0 or a 1. Binary numbers are made up of
binary digits (bits), e.g. the binary number 1001.
The circuits in a computer's processor are made up of billions of transistors. A transistor is a
tiny switch that is activated by the electronic signals it receives.
The digits 1 and 0 used in binary reflect the on and off states of a transistor.
All software, music, documents, and any other information that is processed by a computer, is also stored
using binary.
Bits and bytes
Bits can be grouped together to make them easier to work with.
A group of 8 bits is called a byte.
Other groupings include:
∙ Nibble - 4 bits (half a byte)
∙ Byte - 8 bits
10
∙ Kilobyte (KB) - 1024 bytes (or 1024 x 8 bits) = 2
20
∙ Megabyte (MB) - 1024 kilobytes (or 1048576 bytes) = 2
30
∙ Gigabyte (GB) - 1024 megabytes = 2
40
∙ Terabyte (TB) - 1024 gigabytes = 2
50
∙ Petabyte (PB) -1024 Terabytes = 2
60
∙ Exabyte (EB) -1024 Petabytes = 2
70
∙ Zettabyte (ZB)- 1024 Exabytes = 2
80
∙ Yottabyte (YB) 1024 Zettabytes = 2
The IEC convention for computer internal memories (including RAM) becomes:
1 kilobyte = 1000 byte
1 megabyte = 1000000 bytes
1 gigabyte = 1000000000 bytes
1 terabyte = 1000000000000 bytes and so on.
VS
1 kibibyte (1 KiB) = 1024 bytes
1 mebibyte (1 MiB) = 1048576 bytes
1 gibibyte (1 GiB) = 1073741824 bytes
1 tebibyte (1 TiB) = 1099511627776 bytes and so on.
However, the IEC terms are not universally used and we still use the more conventional terms
shown above. This also ties up with the Cambridge International Examinations computer science
syllabus which uses the same terminology as in the example above.
Binary Addition (unsigned number)
Adding binary numbers is similar to adding denary numbers.
Example: Adding the binary numbers 011 and 100..
Write the numbers out using the column method. Start from the right, and simply add the
numbers.
011
+ 100
-----
111
111 is 7 if converted back to denary.
Example: Adding two 1s in the same column.
Sometimes a binary addition will require you to carry over values into the next highest place
value column, eg when finding the sum of the binary numbers 0010 and 0111:
There is a clash when adding two ones in the same column. In binary, 1+1 is 10 - it has to
become 0 with 1 carried over.
1001 is 9 if converted back to denary. 2 + 7 = 9 in denary.
+ve and –ve binary numbers (signed numbers)
When a computer stores binary numbers, we have to differentiate +ve binary numbers
from –ve binary numbers. Unfortunately (-) or (+) sign cannot be displayed; rather
only 0/1 can be used in binary.
Rules of +ve and –ve binary numbers
Positive binary number always starts with 0 in MSB (Most significant bit)
Negative binary number always starts with 1 in MSB (Most significant bit)
e.g +ve number: 01010010
-ve number: 10010110
-128 64 32 16 8 4 2 1 Place Values
Number becomes 0 1 0 1 0 0 1 0 so number is 0+64+16+2 = 82
Sign bit +ve part of number
Negative binary number always starts with 1 in MSB (Most significant bit)
-128 64 32 16 8 4 2 1 Place Values
Number becomes 1 0 0 1 0 1 1 0 so number is -128+16+4+2 = -106
Sign bit +ve part of number
Conversion of –Ve Denary number to Binary:
What is (– 65) 10 in binary?
Two’s complement allows us to represent signed negative values in binary,
so here is an introductory demonstration on how to convert a negative
decimal value to its negative equivalent in binary using two’s complement.
Binary addition and subtraction
Up until now we have assumed all binary numbers have positive values. There are a
number of methods to represent both positive and negative numbers. We will
consider: One’s complement
Two’s complement.
In one’s complement, each digit in the binary number is inverted (in other words, 0
becomes 1and 1 becomes 0). For example,
Step 1
65 = 01000001 in binary
Step 2: invert 1 to 0 and 0 to 1 we get: 01000001 to its one’s complement as
below: 01000001 = 10111110
In two’s complement,binary digit 1 is added to one’s compliment
Step 3: Convert 10111110 Binary to its two’s complement by
adding 1 to the one’s complement.
P1 Sec 1.1: Data Representation
10111110
+1
--------------
10111111 = Two's complement
Two’s compliment of a positive number will make it a negative number
-128 64 32 16 8 4 2 1 Place values
1 0 1 1 1 1 1 1 = Two's complement
= -128 + 32 +16+8+4+2+1 = - 65
10111111 is - 65 in binary. We know this it true because if we add
01000001 (+65) to 10111111b (-65) and ignore the carry bit, the sum is 0,
which is what we obtain if we add +65 + (-65) = 0.
01000001 +65
+ 10111111 - 65
---------------------
0
1 00000000 denary
^
Ignore the carry bit. What matters is that original number of bits (D7-D0) are all 0.
Methods for converting a negative number expressed in two’s
complement form to the corresponding denary number
Consider the two’s complement binary number 10110001.
Method 1:
Convert to the 1’s compliment gives 01001110 and keep the minus sign with it
Converting to two’s complement gives us 01001111.
You ignore the leading zero in MSB as it is not a positive number and apply one of the
methods to convert the remaining binary to denary which gives 79.
You add the minus sign to give −79.
Binary Subtraction:
What is Binary Subtraction?
Subtraction of binary numbers is an arithmetic operation similar to the subtraction of decimal
numbers or base 10 numbers. For example, 1 + 1 + 1 = 3 in base 10 and 1 + 1 + 1 = 11 in
the binary number system.
When you add and subtract binary numbers, you will need to be careful when borrowing as
these will take place more often.
When you subtract several columns of binary digits, you must take into account the
borrowing. When 1 is to be subtracted from 0, the result is 1 where 1 is borrowed from the next
highest order bit or digit.
Method 1: Binary subtraction using binary numbers
Procedure to do Binary Subtraction:
Example 1:
0011010 – 001100
Solution: 2 - 1 = 1 (denary)
10 Borrow after borrow its 10 – 1 = 1 (binary)
0 0 01 0 110 1 0
(-) 0 0 0 1 1 0 0
______________________
0001110
Decimal Equivalent :
0 0 1 1 0 1 0 = 26
0 0 0 1 1 0 0 = 12
Therefore, 26 – 12 = 14
The binary resultant 0 0 0 1 1 1 0 is equivalent to the 14
P1 Sec 1.1: Dat
Denary 4-bit binary
-8 1000
-7 1001
-6 1010
-5 1011
-4 1100
-3 1101
-2 1110
-1 1111
0 0000
Denary 4-bit binary
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
The Hexadecimal Number System
The base 16 hexadecimal has 16 digits (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E and F). Note that
the single hexadecimal symbol A is equivalent to the decimal number 10, the single
Just as with decimal notation or binary notation, we again write a number as a string
of symbols, but now each symbol is one of the 16 possible hexadecimal digits (0
through F). To interpret a hexadecimal number, we multiply each digit by the power of
16 associated with that digit’s position.
REPRESENTING INTEGERS AS HEXADECIMAL NUMBERS:
The base 16 notational system for representing real numbers. The digits used to
represent numbers using hexadecimal notation are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B,
C, D, E, and F.
―H denotes hex prefix.
Examples:
1 0
(i) 2 816 = 2 8H = 2 × 16 + 8 × 16 = 40
= 32 + 8 = 40
(ii) 2 F16 = 2 FH = 2 × 16 +15 × 1= 47
3 2 1 0
(iii) BC1216 = BC12H = 11×16 +12×16 +1×16 +2×16 = 48146
P1 Sec 1.1: Data Representation
Hexadecimal Numbers in Computing
There are two ways in which hex makes life easier.
∙ The first is that it can be used to write down very large integers in a compact form.
∙ For example, (A D 4 5)16 is shorter than its decimal equivalent
(44357)10 and as values increase the difference in length
becomes even more pronounced.
Converting Binary Numbers to Hexadecimal Numbers.
Let’s assume we have a binary number of: 01010111
The binary number is 01010111
We will break number into 4 bits each as
0101 0111
Then we will start with the right side 4 bits
Starting from extreme right number
for 0101 for 0111
3 2 1 0 3 2 1 0
0X2 +1X2 +0X2 +1X2 0X2 +1X2 +1X2 +1X2
0X8+1X4+0X2+1X1 0X8+1X4+1X2+1X1
0+4+0+1=5 0+4+2+1=7
57
So Hexadecimal number is 57
Converting Hexadecimal Numbers to Binary Numbers
To convert a hexadecimal number to a binary number, we reverse the above
procedure. We separate every digit of hexadecimal number and find its
equivalent binary number and then we write it together.
Example 1.2.4
To convert the hexadecimal number 9F216 to binary, each hex digit is
converted into binary form.
9 F 2 16 = (1001 1111 0010)2
9 =1001 F=1111 2=0010
So Binary equivalent of Hexadecimal number is: 9F2= 100111110010
Problems 1.2.6
Convert hexadecimal 2BF9 to its binary equivalent.
Convert binary 110011100001 to its hexadecimal equivalent. (Below is working
area)
Converting a Hexadecimal Number to a (Denary) Decimal Number
To convert a hexadecimal number to a decimal number, write the hexadecimal number as a
sum of powers of 16. For example, considering the hexadecimal number 1A9B above, we
convert this to decimal as:
1A9B
3 2 1 0
16 16 16 16
1A9B = 1(163) + A (162) + 9(161) + B (160)
= 4096 + 10(256) + 9(16) + 11(1) = 6811
So 1A9B16 = 681110
Converting a (Denary) Decimal Number into Hexadecimal Number
The easiest way to convert from decimal to hexadecimal is to use the same
division algorithm that you used to convert from decimal to binary, but repeatedly
dividing by 16 instead of by 2. As before, we keep track of the remainders, and the
sequence of remainders forms the hexadecimal representation.
For example, to convert the decimal number 746 to hexadecimal, we proceed as follows:
` Remainder
16 | 746
| 46 10 = A
| 2 14 = E
|02
We read the number as last is first and first is last.
2EA
So, the decimal number 746 = 2EA in hexadecimal
BCD Binary Coded Decimals:
In computing and electronic systems, binary-coded decimal (BCD) is a class
of binary encodings of decimal numbers where each decimal digit is
represented by a fixed number of bits, usually four or eight. Special bit
patterns are sometimes used for a sign or for other indications (e.g., error or
overflow).
BCD was used in many early decimal computers, and is implemented in the
instruction set of machines such as the IBM System/360 series and its
descendants
and Digital's VAX. Although BCD per se is not as widely used as in the past
[dubious –
and is no longer implemented in computers' instruction sets
discuss]
, decimal fixed-point and floating-point formats are still important and
continue to be used in financial, commercial, and industrial computing
As most computers deal with data in 8-bit bytes, it is possible to use one of the
following methods to encode a BCD number:
Unpacked: each numeral is encoded into one byte, with four bits
representing the numeral and the remaining bits having no significance.
Packed: two numerals are encoded into a single byte, with one numeral in the least
significant nibble (bits 0 through 3) and the other numeral in the most significant nibble
The Denary number 8 5 0 3 could be represented by one BCD digit per
byte
00001000 00000101 00000000 000000011(Unpacked)Denary
Number 8 5 0 3 represented by One BCD per nibble
1000 0101 0000 0011 (Packed)
e.g. 398602 in BCD
Answer: 3 = 0011 9 = 1001 8 = 1000 6 = 0110 0 = 0000 2 = 0010
So
398602 = 001110011000011000000010 (in BCD)
Note: All the zeros are essential otherwise you can’t read it back.
But do not get confused, binary coded decimal is not the same as
hexadecimal. Whereas a 4-bit hexadecimal number is valid up to F16
representing binary 11112, (decimal 15), binary coded decimal numbers
stop at 9 binary 10012
Uses of BCD:
There are a number of applications where BCD can be used.
The obvious type of application is where denary digits are to be displayed,
for instance on the screen of a calculator or in a digital time display.
180.3
A somewhat unexpected application is for the representation of currency values. When a
currency value is written in a format such as $300.25 it is as a fixed-point decimal
number (ignoring the dollar sign). It might be expected that such values would be stored
as real numbers but this cannot be done accurately.
ASCII code:
If text is to be stored in a computer it is necessary to have a coding scheme that
provides a unique binary code for each distinct individual component item of the
text.
Such a code is referred to as a character code.
The scheme which has been used for the longest time is the ASCII (American
Standard Code for Information Interchange) coding scheme.
This is an internationally agreed standard. There are some variations on
ASCII coding schemes but the major one is the 7-bit code. It is customary to
present the codes in a table for which a number of different designs have
been used.
The full table shows the 27 (128) different codes available for a 7-bit code.
You should not try to remember any of the individual codes but there are
certain aspects of the coding scheme which you need to understand.
Computers store text documents, both on disk and in memory, using ASCII
codes. For example, if you use Notepad in Windows OS to create a text file
containing the words, "Four score and seven years ago," Notepad would use
1 byte of memory per character (including 1 byte for each space character
between the words
It is worth emphasizing here that these codes for numbers are exclusively for
use in the context of stored, displayed or printed text.
All of the other coding schemes for numbers are for internal use in a
computer system and would not be used in a text.
There are some special features that make the coding scheme easy to use in
certain circumstances.
The first is that the codes for numbers and for letters are in sequence
in each case so that, for example,
if 1 is added to the code for seven the code for eight is produced.
The second is that the codes for the upper-case letters differ from the
codes for the corresponding lower-case letters only in the value of bit
6.
This makes conversion of upper case to lower case, or the reverse, a
simple operation.
Unicode:
Despite still being widely used, the ASCII codes are far from adequate
for many purposes.
Unicode is an international encoding standard for use with different
languages and scripts.
It works by providing a unique number for every character, this creates a
consistent encoding, representation, and handling of text.
Basically Unicode is like a Universal Alphabet that covers the majority
of different languages across the world, it transforms characters into
numbers.
It achieves this by using character encoding, which is to assign a
number to every character that can be used.
What’s an example of a Unicode?
Unicode has its own special terminology. For example, a character code is referred to as a
'code point'.
In any documentation there is a special way of identifying a code point. An
example is U+0041 which is the code point corresponding to the alphabetic
character A.
The 0041 are hexadecimal characters representing two bytes. The
interesting point is that in a text where the coding has been identified as
Unicode it is only necessary to use a one-byte representation for the 128
codes corresponding to ASCII. To ensure such a code cannot be
misinterpreted, the codes where more than one byte is needed have
restrictions applied.
At its core, Unicode is like ASCII: a list of characters that people want to type
into a computer. Every character gets a numeric codepoint, whether it’s
capital A, lowercase or special character. A = 65 λ = 923
Unlike ASCII, Unicode has more than a million possible codepoints, so they
can’t possibly all fit in one byte.
Unicode vs. ASCII code:
Unicode is a computing industry standard for the consistent
encoding, representation, and handling of text expressed in
most of the world's writing systems.
A more efficient coding system than ASCII
Unicode contains more than 128,000 characters.
Unicode supports 135 modern and historic scripts, as well as
multiple symbol sets..
An unambiguous encoding where each 16-bit or 32-bit value
always represents the same character