Data Representation Conversion 24/04/2017
Learning Objectives: Express numbers in binary, binary coded decimal (BCD), octal and hexadecimal. 24/04/2017
The Binary System Computers store information (data of all types – numbers, characters, sound, pictures, …) in Binary format i.e. base 2. i.e. 0 or 1 Used because computers can only store and understand 2 states: i.e. whether a circuit has current flowing or not / circuit is closed or open / voltage is high or low. 1 24/04/2017
Bits and Bytes A binary digit (1 or 0) is known as a ‘bit’, short for BInary digiT. In modern computers bits are grouped in 8 bit bytes. A Nibble is 4 bits (half a byte). A Word is the number of bits that the CPU can process simultaneously. Determines the speed of the computer. Processors can have 8-, 16-, 32-(standard) or 64-(fast) bit word sizes (or more). 24/04/2017
Character set The symbols that a computer (software) can recognise which are represented by binary codes that the computer understands. 24/04/2017
Character Representation Over the years different computer designers have used different sets of binary codes for representing characters in a character set. This has led to great difficulty in transferring information from one computer to another. i.e. which binary code represents each character 24/04/2017
ASCII (American Standard Code for Information Interchange) Represents each character in a standard character set as a single byte binary code. The standard code form that most PCs use to allow for communication between systems. Usually uses a 7 bit binary code so can store 128 different characters and simple communications protocols. Sufficient for all characters on a standard keyboard plus control codes. Can be extended (extended ASCII) to use 8 bits (so can store 256 characters) to encode Latin language characters. 24/04/2017
ASCII code The first 32 ASCII codes are used for simple communications protocols, not characters. e.g. ACK – acknowledge and would be sent by a device to acknowledge receipt of data. 0110010 – 2 0110001 – 1 ….. 1000001 – A 1000010 – B 24/04/2017
Representing Characters and Numbers e.g. If the ‘A’ key is pressed ‘1000001’ is sent to the CPU. If the 1 key is pressed then ‘0110001’ is sent to the CPU. If the user wants to print ‘123’ the codes for 1, 2 & 3 are sent to the printer. 24/04/2017
Binary Arithmetic Rules 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 (carry 1) 1+1+1 = 1 (carry 1) 24/04/2017
Arithmetic ASCII coding is fine for input and output but useless for arithmetic: 2 0110010 -1 - 0110001 1 0000000 i.e. not 1 There is no easy way to perform calculations on the numbers stored in this way. Numbers which are to be used in calculations are therefore held in binary format. 24/04/2017
Decimal or Denary system 134 = 100 + 30 + 4 Each column is worth 10X as much as the last i.e. base 10 (10 fingers!). 100 10 1 3 4 24/04/2017
Binary system 134 = 128 + 4 + 2 Each column is worth 2X as much as the last i.e. base 2. 128 64 32 16 8 4 2 1 Most Significant Bit (MSB) Least Significant Bit (LSB) Increasing Bit Status 24/04/2017
Binary – Decimal Spreadsheet Converter 1 Try using it to ‘play’ with binary numbers. https://4565e4f1bb6fcb191b6a80b2e8cd1502a3f5fc3b.googledrive.com/host/0BxvAvCIUrln7bjJWaDAwZ0lBVFU/a/4%20Data%20Representation,%20Data%20Structures%20and%20Data%20Manipulation/4.1%20Data%20Representation/4.11%20Conversion/Binary-Denary_Converter1.xls 24/04/2017
Denary -> Binary e.g. 117 Always use the column headings for a byte (8 bits). 117 < 128 so put a 0 and repeat. 128 64 32 16 8 4 2 1 117 > 64 so put a 1. 128 64 32 16 8 4 2 1 117 - 64 = 53 , 53 > 32, so put a 1. 128 64 32 16 8 4 2 1 53 - 32 = 21 , 21 > 16, so put a 1. Continue this until: 128 64 32 16 8 4 2 1
Binary -> Denary e.g. 10110110 So 10110110 = 128 + 32 + 16 + 4 + 2 Put the column headings above the binary number and add up all the columns with a 1 in them. 128 64 32 16 8 4 2 1 So 10110110 = 128 + 32 + 16 + 4 + 2 = 182 (denary)
Questions 1. Convert the following binary numbers to decimal. 0011 3 0110 6 1010 10 01000001 65 01000101 69 24/04/2017
8 bit patterns Because in modern computers bits are grouped in 8 bit bytes numbers in binary format are usually written in 8 bit patterns even if there are unnecessary left leading 0’s. e.g. 11(binary) = 3 (decimal) But you will usually find it written as 00000011 24/04/2017
Decimal -> Binary Questions 2. Convert the following decimal numbers to binary: 5 00000101 7 00000111 1 00000001 26 00011010 68 01000100 137 10001001 24/04/2017
Size of number Using only one byte to hold a number of places a restriction on the size of number the computer can hold. Therefore four or more consecutive bytes are commonly used to store numbers 24/04/2017
Binary -> Decimal Questions 3. What is the largest decimal number that can be held in (hint: 2^no. of bits): 1 byte 255 (2^8 - 1) 2 bytes 65535 (2^16 - 1) 3 bytes 16777215 (2^24 - 1) 4 bytes 4294967295 (2^32-1) 24/04/2017
Hexadecimal Counts in 16’s. Uses the digits 0 – 9 and letters A – F. We need symbols going further than 0 to 9 (only 10 symbols and we need 16!). We could invent 6 more symbols but we would have to learn them, so we use 6 that we already know, the letters A to F. Each digit is worth 16X as much as the one to the right. Each hex bit = 4 binary bits. e.g. F (decimal 15) = 1111 24/04/2017
Hexadecimal Denary / Decimal Binary Hexadecimal 1 00000001 2 00000010 etc …. 9 00001001 10 00001010 A 11 00001011 B 15 00001111 F 16 00010000 24/04/2017
Decimal -> Hexadecimal e.g. 75 Use the column headings 1, 16, 256, … (16^n) 75 < 4096 & 75 < 256 so put a 0. 4096 256 16 1 75 > 16 & 75 / 16 = 4 r 11 11= B (hexadecimal) 4096 256 16 1 4 B So 75 = 4B (Hexadecimal)
Hexadecimal-Denary Converter Try using it to ‘play’ with hexadecimal numbers. https://4565e4f1bb6fcb191b6a80b2e8cd1502a3f5fc3b.googledrive.com/host/0BxvAvCIUrln7bjJWaDAwZ0lBVFU/a/4%20Data%20Representation,%20Data%20Structures%20and%20Data%20Manipulation/4.1%20Data%20Representation/4.11%20Conversion/Hexadecimal-Denary_Converter.xls 24/04/2017 25
Denary -> Hexadecimal Question: Translate 101 (denary) into hexadecimal. 65 Translate 64 (denary) into hexadecimal. 40 24/04/2017
Hexadecimal -> Denary e.g. BD 4096 256 16 1 B D 11 13 B = 11 , D = 13 BD = (11 * 16) + 13 = 176 + 13 = 189 ( in denary) 24/04/2017
Hexadecimal -> Denary Question: Translate 96 (hexadecimal) into denary. 150 Translate the 75 (hexadecimal) into denary. 117 Translate the 30 (hexadecimal) into denary. 48 24/04/2017
Binary -> Hexadecimal Translate each group of 4 bits into denary and then into hexadecimal. e.g. 10010010 (binary) = (1001)(0010) = (9)(2) = 92 (hexadecimal) An alternative way to convert from denary to hexadecimal is to convert to binary and then do the above. Subsequently, vice versa for hexadecimal to denary. 24/04/2017
Hexadecimal In order to ease the task of examining the contents of memory or a computer file, binary numbers are commonly put into groups of 4 bits and displayed in the form of hexadecimal numbers, base 16. Used as a shorthand for binary. 24/04/2017
Questions: The ASCII code for the letter N is 0100 1110. Show how to represent this in a) denary 78 b) hexadecimal = (0100) (1110) = (4 + 14) = 4E 24/04/2017
Octal Counts in 8’s. 24/04/2017
Decimal -> Octal e.g. 117 So 117 = 165 (Octal) Use the column headings 1, 8, 64, 512 … (8^n) 117 < 512 so put a 0. 512 64 8 1 117 > 64 & 117 / 64 = 1 r 53 512 64 8 1 53 > 8 & 53 / 8 = 6 r 5 512 64 8 1 6 5 So 117 = 165 (Octal)
Decimal -> Octal Question: Translate 101 (denary) into octal. 145 24/04/2017
Octal -> Denary e.g. 76 76 (octal) = (7 * 8) + 6 = 56 + 6 512 64 8 1 7 6 76 (octal) = (7 * 8) + 6 = 56 + 6 = 62 ( in denary) 24/04/2017
Octal -> Decimal Question: Translate 101 (octal) into denary. 65 24/04/2017
Binary -> Octal 01110101 (binary) Arrange in 3’s from the right. 01 110 101 Add leading 0 001 110 101 Each group of three bits converted denary but the final result is octal. 1 6 5 165 (octal) 24/04/2017
BCD (Binary Coded Decimal) Represents numbers only by representing each decimal digit by a 4 bit binary code. Decimal Binary 0000 1 0001 2 0010 etc.... 9 1001 e.g. 19 is shown by: 1 9 0001 1001 24/04/2017
Denary -> BCD Question Convert 398602 (denary) into BCD. 001110011000011000000010 24/04/2017
BCD -> Denary e.g. 001001110110 Split into groups of 4. (0010) (0111) (0110) Translate each group of 4 into decimal in the same fashion as binary -> decimal. 2 7 6 So 001001110110 = 276 (denary) 24/04/2017
BCD -> Denary Question Convert 100000110101 (BCD) into denary. 835 24/04/2017
BCD (Binary Coded Decimal) Advantages: Easy to convert from BCD to decimal and vice versa: as a BCD number is split into groups of four bits and each group converted directly to the corresponding decimal digit Used in some pocket calculators 24/04/2017
. Fixed Point Binary 8 4 2 1 ½ ¼ 1/8 1/16 6.75 = 0110.1100 A number with a decimal point is known (strangely!) as a real number as opposed to an integer which is a whole number. We can extend the binary system to represent real numbers by reserving some bits for the real or fractional part. 8 4 2 1 ½ ¼ 1/8 1/16 . 6.75 = 0110.1100 24/04/2017
Fixed Point Binary Precision 110.1 = 6.5 110.11 = 6.75 We have missed out 6.51 to 6.74! This means accuracy is poor. 24/04/2017
BCD (Binary Coded Decimal) Advantages: When storing fractional numbers in BCD no ‘rounding’ occurs: As each digit is encoded separately so as many bits as necessary are used to represent the complete number Used in business applications where every significant digit has to be retained in a result. 24/04/2017
BCD (Binary Coded Decimal) Disadvantage More bits are required to store each number than pure binary e.g. 19 in BCD = 0001 1001 (8 bits) 19 in normal binary format = 10011 (5 bits) Difficult to calculate with: e.g. 1 0000 0001 + 19 0001 1001 20 0001 1010 ‘10’ is wrong invalid 24/04/2017
BCD (Binary Coded Decimal) Only the first ten out of 16 combinations of 4 digits are used to encode the decimal digits ‘0’ to ‘9’ Therefore whenever the sum of two binary digits is >9, 6 has to be added to skip over the 6 unused codes. e.g. 1 0000 0001 + 19 +0001 1001 20 0001 1010 + 0110 0010 0000 i.e. 20 which is correct 24/04/2017
Unicode 16 bit code so can store 65536 characters and codes and simple communications protocols. Used to allow coding of languages that do not use Western characters. Currently supports 24 language scripts. 24/04/2017
Plenary Express the denary value 109 as A binary number using an 8-bit byte. An octal number. A hexadecimal number. A number in binary coded decimal (BCD). 24/04/2017
Plenary 01101101 155 6D 0001 0000 1001 24/04/2017