Binary Number System
Binary Number System
The binary system uses 1s and 0s only which gives these corresponding weightings:
Method 1
This method involves placing 1s in the appropriate position so that the total equates to 107.
ACTIVITY 1A
Convert these binary numbers into denary.
a) 0 0 1 1 0 0 1 1
b) 0 1 1 1 1 1 1 1
c) 1 0 0 1 1 0 0 1
d) 0 1 1 1 0 1 0 0
e) 1 1 1 1 1 1 1 1
f) 0 0 0 0 1 1 1 1
g) 1 0 0 0 1 1 1 1
h) 0 0 1 1 0 0 1 1
i) 0 1 1 1 0 0 0 0
j) 1 1 1 0 1 1 1 0
Method 2
This method involves successive division by 2; the remainders are then written from bottom to
top to give the binary value.
ACTIVITY 1B
Convert these denary numbers into binary (using either method). a) 4 1
b) 6 7
c) 8 6
d) 1 0 0
e) 1 1 1
f) 1 2 7
g) 1 4 4
h) 1 8 9
i) 2 0 0
j) 2 5 5
This means:
The easiest way to convert a number into its negative equivalent is to use two’s complement.
For example, 104 in binary is 0 1 1 0 1 0 0 0.
To find the binary value for −104 using two’s complement:
A C T I V I T Y 1C
C onv ert these denary numbers i nto 8-bi t bi nary numbers usi ng two’ s compl ement where
necessary . U se these bi nary col umn wei g hti ng s:
a) + 114
b) + 61
c) + 96
d) − 14
e) − 116
Example 1.1
A dd 0 0 1 0 0 1 0 1 ( 37 i n denary ) and 0 0 1 1 1 0 1 0 ( 58 i n denary ) .
S ol uti on
E x ample 1.2
To carry out subtraction in binary, we convert the number being subtracted into its negative
equivalent using two’s complement, and then add the two numbers.
Example 1.3
C arry out the subtracti on 49 – 80 i n bi nary .
S ol uti on
1 C onv ert the two numbers i nto bi nary :
49 = 0 0 1 1 0 0 0 1
80 = 0 1 0 1 0 0 0 0
2 F i nd the two’ s compl ement of 80:
3 A dd 49 and − 80:
Measurement of the size of computer memories
The byte is the smallest unit of memory in a computer. Some computers use larger bytes, such
as 16-bit systems and 32-bit systems, but they are always multiples of 8. 1 byte of memory
wouldn’t allow you to store very much information; so memory size is measured in these
multiples. See Table 1.1.
The system of numbering shown in Table 1.1 only refers to some storage devices, but is
technically inaccurate. It is based on the SI (base 10) system of units where 1 kilo is equal to
1000. A 1 TB hard disk drive would allow the storage of 1 × 10 12 bytes according to this system.
However, since memory size is actually measured in terms of powers of 2, another system has
been proposed by the International Electrotechnical Commission (IEC); it is based on the binary
system. See Table 1.2.
This system is more accurate. Internal memories (such as RAM) should be measured using the
IEC system. A 64 GiB RAM could, therefore, store 64 × 230 bytes of data (68 719 476 736 bytes).
See Section 1.2 for examples of how to calculate the size of a file.
1.1.3 Hexadecimal number system
The hexadecimal system is very closely related to the binary system. Hexadecimal (sometimes
referred to as simply hex) is a base 16 system with the weightings:
Because it is a system based on 16 different digits, the numbers 0 to 9 and the letters A to F are
used to represent hexadecimal digits.
A = 10, B = 11, C = 12, D = 13, E = 14 and F = 15.
Since 16 = 24, four binary digits are equivalent to each hexadecimal digit. Table 1.3 summarises
the link between binary, hexadecimal and denary.
Example 1.5
C onv ert 1 0 1 1 1 1 1 0 0 0 0 1 from bi nary to hex adeci mal .
S ol uti on
F i rst spl i t i t i nto g roups of 4 bi ts:
E x ample 1.6
ACTIVITY 1E
Convert these binary numbers into hexadecimal.
a) 1 1 0 0 0 0 1 1
b) 1 1 1 1 0 1 1 1
c) 1 0 0 1 1 1 1 1 1 1
d) 1 0 0 1 1 1 0 1 1 1 0
e) 0 0 0 1 1 1 1 0 0 0 0 1
f) 1 0 0 0 1 0 0 1 1 1 1 0
g) 0 0 1 0 0 1 1 1 1 1 1 1 0
h) 0 1 1 1 0 1 0 0 1 1 1 0 0
i) 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1
j) 0 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0
Converting from hexadecimal to binary is also straightforward. Using the data from Table 1.3,
simply take each hexadecimal digit and write down the 4 bit code which corresponds to the
digit.
Example 1.7
Convert this hexadecimal number to its binary equivalent.
4 5 A
Solution
Using Table 1.3, find the 4-bit code for each digit:
0100 0101 1010
Put the groups together to form the binary number:
010001011010
Example 1.8
Convert this hexadecimal number to its binary equivalent.
B F 0 8
Solution
Using Table 1.3:
1011 1111 0000 1 0 0 0 Then
put all the digits together:
1011111100001000
Memory dumps
It is much easier to work with:
B 5 A 4 1 A F C than it is to
work with:
10110101101001000001101011111100
So, hexadecimal is often used when developing new software or when trying to trace errors in
programs. When the memory contents are output to a printer or monitor, this is known as a
memory dump.
ACTIVITY 1F
Convert these hexadecimal numbers into binary. a) 6 C
b) 5 9
c) A A
d) A 0 0
e) 4 0 E
f) B A 6
g) 9 C C
h) 4 0 A A
i) D A 4 7
j) 1 A B 0
A program developer can look at each of the hexadecimal codes (as shown in Table 1.4) and
determine where the error lies. The value on the far left shows the memory location, so it is
possible to find out exactly where in memory the fault occurs. Using hexadecimal is more
manageable than binary. It is a powerful fault-tracing tool, but requires considerable
knowledge of computer architecture to be able to interpret the results.
Uses of BCD
The most obvious use of BCD is in the representation of digits on a calculator or clock display.
Each denary digit will have a BCD equivalent value which makes it easy to convert from
computer output to denary display.
As you will learn in Chapter 13, it is nearly impossible to represent decimal values exactly in
computer memories which use the binary number system. Normally this doesn’t cause a major
issue since the differences can be dealt with. However, when it comes to accounting and
representing monetary values in computers, exact values need to be stored to prevent
significant errors from accumulating. Monetary values use a fixed-point notation, for example
$1.31, so one solution is to represent each denary digit as a BCD value.
Consider adding $0.37 and $0.94 together using fixed-point decimals.
This produces 1 1 0 1 which isn’t a denary digit; this will flag an error and the computer again
needs to add 0 1 1 0.
Adding 1 to 0 0 0 0 0 0 0 0 produces:
Final answer:
ACTIVITY 1H
Carry out these BCD additions.
a) 0.45 + 0.21
b) 0.66 + 0.51
c) 0.88 + 0.75
Notice the storage of characters with uppercase and lowercase. For example:
Notice the sixth bit changes from 1 to 0 when comparing lower and uppercase characters. This
makes the conversion between the two an easy operation. It is also noticeable that the
character sets (such as a to z, 0 to 9, and so on) are grouped together in sequence, which
speeds up usability.
Extended ASCII uses 8-bit codes (128 to 255 in denary or 80 to FF in hex). This allows for
nonEnglish characters and for drawing characters to be included.
Since ASCII code has a number of disadvantages and is unsuitable for some purposes, different
methods of coding have been developed over the years. One coding system is called Unicode.
Unicode allows characters in a code form to represent all languages of the world, thus
supporting many operating systems, search engines and internet browsers used globally. There
is overlap with standard ASCII code, since the first 128 (English) characters are the same, but
Unicode can support several thousand different characters in total. As can be seen in Tables 1.5
and 1.6, ASCII uses one byte to represent a character, whereas Unicode will support up to four
bytes per character.
▲ Table 1.6 Extended ASCII code table
The Unicode consortium was set up in 1991. Version 1.0 was published with five goals, these
were to
• create a universal standard that covered all languages and all writing systems
• produce a more efficient coding system than ASCII
• adopt uniform encoding where each character is encoded as 16-bit or 32-bit code
• create unambiguous encoding where each 16-bit or 32-bit value always represents the same
character (it is worth pointing out here that the ASCII code tables are not standardised and
versions other than the ones shown in tables 1.5 and 1.6 exist)
• reserve part of the code for private use to enable a user to assign codes for their own
characters and symbols (useful for Chinese and Japanese character sets).
A sample of Unicode characters are shown in Table 1.7. As can be seen from the table,
characters used in languages such as Russian, Greek, Romanian and Croatian can now be
represented in a computer).
▲ Table 1.7 Sample of Unicode characters