Data Representation – numbers Binary conversion Hexadecimal Negative numbers Binary addition Binary shifts
Basic Binary 1 = switch closed / electricity on 0 = switch open / electricity off If you send 1 bit, how many different combinations can you send? 1 or 0 If you send 2 bits, how many different combinations can you sent? 00 01 10 11 3 bits? 4 bits? 5 bits?
Terminology Bit 1 or 0 Nibble 4 bits Byte 2 nibbles / 8 bits KB Kilobyte 1000/1024 bytes MB Megabyte 1000/1024 KB GB Gigabyte 1000/1024 MB TB Terabyte 1000/1024 GB
Binary - Decimal 128 64 32 16 8 4 2 1 8 1 = 9 128 64 32 16 8 4 2 1 128 32 4 2 = 166
Have a go 4 10011110 5 11111001 6 1011100101 7 11000000111 8 100101100101 9 1111001111010111 10 1000011100010110 1 2 3 128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1 Answers: 1 = 49, 2 = 154, 3 = 247, 4 = 158, 5 = 249, 6 = 741, 7 = 1543, 8 = 2405, 9 = 62423, 10 = 34582
Patterns If the least significant bit (right most) is a 1, the number is odd All 1s = the next number -1 e.g. = 127 The smallest number in positive binary is always 0 The number of combinations is equal to the next number = 128 different combinations 0 to 127 128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1
Decimal - Binary 23 23 – 16 = 7 7 – 4 = 3 128 64 32 16 8 4 2 1 98 98 – 64 = 34 34 – 32 = 2 128 64 32 16 8 4 2 1 242 242 – 128 = 114 114 – 64 = 50 50 – 32 = 18 18 – 16 = 2 128 64 32 16 8 4 2 1
Have a go 28 43 78 101 200 6 220 7 269 8 612 9 2974 10 32651 Answers: 1 = 11100, 2 = 101011, 3 = 1001110, 4 = 1100101, 5 = 11001000, 6 = 11011100, 7 = 100001101, 8 = 1001100100, 9 = 101110011110, 10 = 111111110001011
Hexadecimal Easier to remember than binary 1 nibble can be: Decimal Hexadecimal 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 A 11 B 12 C 13 D 14 E 15 F Hexadecimal Easier to remember than binary Quicker/easier to write than binary Can be converted quickly to binary (and back) Each nibble is converted into a single hexadecimal number
Hexadecimal - binary 3A 3 A 0011 1010 00111010 F20 F 2 0 1111 0010 0000 111100100000
Have a go, hex-bin 11 2A BB 6C A0 50F 9BD D5AA 1974 26ABEB Answers: 1 = 00010001, 2 = 00101010, 3 = 10111011, 4 = 01101100, 5 = 10100000, 6 = 010100001111, 7 = 100110111101, 8 = 1101010110101010, 9 = 0001100101110100, 10 = 001001101010101111101011
Binary - Hexadecimal 10011110 1001 1110 9 14 9E 111101011011 1111 0101 1011 15 5 11 F5B
Have a go, binary-hex 01100001 10111111 10000000 01011111 111001101011 001010101100 111100001111 001100111111 0101111000101011 1111111100010110 Answers: 1 = 6A, 2 = BF, 3 = 80, 4 = 5F, 5 = E6B, 6 = 2AC, 7 = F0F, 8 = 33F, 9 = 5E2B, 10 = FF16
Hexadecimal - Decimal Convert to binary and then to decimal… Or… 161 160 3 A 3A = Convert to binary and then to decimal… Or… (3 * 16) + (10 * 1) = 58 162 161 160 162 161 160 1 D 3 1D3 = 256 16 1 (1 * 16 * 16 ) + (13 * 16) + (3 * 1) = 467
Have a go, hex-dec 11 2A BB 6C A0 50F 9BD D5AA 1974 26ABEB Answers: 1 = 17, 2 = 42, 3 = 187, 4 = 108, 5 = 160, 6 = 1295, 7 = 2493, 8 = 54698, 9 = 6516, 10 = 2534379
Decimal – Hexadecimal 78 = 4E 199 = C7 299 = 12B 256 16 1 4 14 Convert the binary and then hexa Or 256 16 1 12 7 162 161 160 256 16 1 2 11
Have a go – dec-hex 22 59 100 189 231 257 1056 2000 3578 32444 Answers: 1 = 16, 2 = 3B, 3 = 64, 4 = BD, 5 = E7, 6 = 101, 7 = 420, 8 = 7D0, 9 = DFA, 10 = 7EBC
Binary Addition What is 1 + 1? What is 0 + 0? What is 1 + 1 + 1? What is 1 + 1? 1 What is 0 + 1? 1 What is 1 + 1 + 1? 1
Binary addition – 4 basic rules 1 0 + 0 = 0 0 + 1 = 1 1 + 1 = 0 carry 1 1 + 1 + 1 = 1 carry 1 1
1 1 Overflow = the result of the addition is too large to fit in 8 bits. A 9th bit is needed to store the result. (1)
Have a go, binary addition 1 1 1 (1) 1 (1) 1 If adding 4 1s, the result is binary 4. 100, put a 0 in the box carry the 1 across two columns to the left 1 (1) (1)
Negative numbers – Sign and Magnitude The MSB bit (left most) gives the sign (it does not have a numeric value). 1 = negative, 0 = positive 0011 = 3 01010 = 10 1011 = -3 11010 = -10 Work out the binary – add a 0 or a 1 at the front
Have a go, dec – sign and mag 22 -33 59 -100 105 -106 -221 398 -512 -1069 Answers: 1 = 010110, 2 = 1100001, 3 = 0111011, 4 = 11100100, 5 = 01101001, 6 = 11101010, 7 = 111011101, 8 = 0110001110, 9 = 11000000000, 10 = 110000101101
Negative numbers – Two’s complement Dec – two’s Convert the number to binary as normal. Make sure there is a 0 in the MSB. If the decimal number is positive, you already have the answer. If it is negative, you need to flip it: Method 2: Right to left write down all the bits up to and including the first 1. Flip the rest 01011010 Keep same: 10 Flip the rest: 10100110 Method 1: 1. Flip all the bits 2. Add 1 01011010 Flip: 10100101 Add 1: 10100110
Dec-two’s examples 59 Convert to binary (with a 0 at the front): 0111011 59 is positive, so the answer is 0111011 -59 Convert to binary (with a 0 at the front): 0111011 Flip all the bits: 1000100 Add 1: 1000101
Have a go, Dec – two’s 22 -33 59 -100 105 -106 -221 398 -512 -1069 Answers: 1 = 010110, 2 = 00100010, 3 = 0111011, 4 = 10011100, 5 = 01101001, 6 = 10010110, 7 = 00100011, 8 = 0110001110, 9 = 11000000000, 10 = 101111010011
Two’s complement, two’s-dec Check the first bit. If it is a 0 – convert it to decimal as normal. If it is a 1, you need to flip it, then work it out as normal: Method 1: 1. Flip all the bits 2. Add 1 10011110 Flip: 01100001 Add 1: 01100010 Method 2: Right to left write down all the bits up to and including the first 1. Flip the rest 10011110 Keep same: 10 Flip the rest: 01100010
Two’s-dec examples 01011111 First bit = 0 so convert as normal = 95 10010100 First bit = 1 so flip and add 1 Flip: 01101011 Add 1: 01101100 Convert: -108
Have a go, Two’s – dec 00110101 10111010 11000000 01000110 01010101 10101010 1101011010 1110001110 0110101010101 1110101011010101 Answers: 1 = 53, 2 = -70, 3 = -64, 4 = 70, 5 = 85, 6 = -86, 7 = -166, 8 = -114, 9 = 3413, 10 = -5419
Binary Shifts Move binary numbers a set number of places to the left, or the right Logical shift – spaces are filled in with 0s Arithmetic shift – when shifting left the spaces are filled with 0s, when shifting right they are filled with the MSB
Logical 1 Left shift 2 spaces 1 1 Right shift 2 spaces 1
Arithmetic 1 Left shift 2 spaces 1 1 Right shift 2 spaces 1
What do they do? Each left shift (log/ari) multiplies the number by 2 Each logical right shift divides the number by 2 Each arithmetic right shift divides the number by 2 but keeps the sign (positive/negative for two’s complement) (Arithmetic left shift will keep the sign if bits are not removed)
Have a go, shifts Type Left/Right Num Places Binary 1 Logical Left 01011010 2 Arithmetic 10101110 3 Right 01011111 4 11110010 5 10111010 6 00001110 7 11010101 8 10101010 9 01111100 10 10111111 Answers 10110100 01011100 00010111 11001000 01110000 11111101 01000000 00000001 11111110