Binary, Octal and Hexadecimal The number bases used in computers Copyright 2005 Curt Hill T-Shirt • There are 10 kinds of people: • Those that understand binary • Those who don’t Copyright 2005 Curt Hill Binary • Binary is a base two number system • It is widely used because of electronics • A switch is a two value device • Binary uses two values for each digit • Thus computer memory and storage is usually in binary • Before dealing with binary we should review what we already know: decimal Copyright 2005 Curt Hill Decimal • What are the characteristics of decimal system? • Ten occurs twice: – Number of distinct digits – The power that each place value digit is raised • So what does 8245 mean? Copyright 2005 Curt Hill Decimal numbers 8245 Ten possible digits 0-9 All places raised to a power of ten 5× 1 4 × 10 2 2 × 10 8 × 103 0 10 = 5 = 40 = 200 = 8000 Copyright 2005 Curt Hill Binary is Similar • There are two possible digits 0 and 1 • All places are raised to a power of 2 • The arithmetic fact tables are much smaller • The representation of a number is much bulkier Copyright 2005 Curt Hill Binary numbers 10110 0× 1 × 21 2 1×2 0 × 23 1 × 24 0 2 = 0 = 2 = 4 = 0 = 16 Five or six digits of binary is just two of decimal Copyright 2005 Curt Hill 22 Converting binary to decimal 1. Have a variable, call it T, which will contain the powers of two. Initialize it to 1. 2. Have a variable, call it D, which will contain the decimal number. Initialize it to 0. 3. Position yourself to the right-most digit of the binary number. 4. While there are still digits to the left of the current one do steps 5 - 8. 5. If the digit in the current position is 1 6. Then add the value of T to D 7. Double T. 8. Move the current position one digit to the left. Copyright 2005 Curt Hill More Examples • What is 1010110? • Starting at the right: – 0 + 2 + 4 + 0 + 16 + 0 + 64 = 86 • What is 1110011? • Starting at the right: – 1 + 2 + 0 + 0 + 16 + 32 + 64 = 115 • What is 11101010? • Starting at the right: – 0 + 2 + 0 + 8 + 0 + 32 + 64 + 128 = 234 Copyright 2005 Curt Hill Decimal to Binary • Somewhat uglier but still managable • The process starts with decimal number and subtracts successively smaller power of two from it • If it can be subtracted produce a 1 otherwise a zero Copyright 2005 Curt Hill Decimal Conversion Example • Start with 50 • The largest power of 2 less than this is 32 (25) • The binary number is 1xxxxx • Subtracting 50 – 32 gives 18 • Now subtract 16 to get 11xxxx and 2 • No 8s or 4s can be subtracted giving 1100xx • Subtract 2 – 2 giving 11001x and 0 • No 1s can be subtracted giving 110010 Copyright 2005 Curt Hill Decimal to Binary Again 150 -128 22 -16 6 -4 2 -2 0 Starting number Any 128s? Yes. Subtract, place a one. Any 64s? No. Place a zero. Any 32s? No. Place a zero. Any 16s? Yes. Subtract, place a one. Any 8s? No. Place a zero. Any 4s? Yes. Subtract, place a one. Yes. Subtract, place a one. Any 2s? Any 1s? No. Place a zero. 1 ___ 0 __ 0 __ 1 __ 0 __ 1 __ 1 __ 0 __ 128 64 32 16 8 4 2 1 Copyright 2005 Curt Hill Decimal Conversion Algorithm 1. Have a variable, call it D, which is initialized to the value of the decimal number needing conversion. 2. Have another variable, call it T, that is initialized to the largest power of two that is smaller than D. 3. While D > 0 do steps 4 - 8. 4. If D >= T 5. Then subtract T from D 6. Write a 1 7. Else write a 0 8. Divide T by 2 Copyright 2005 Curt Hill Binary Arithmetic • Similar to decimal but the fact tables are smaller • Carrying, borrowing etc. is same Decimal Addition Fact Table 0 1 2 3 4 5 0 1 2 3 4 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 … 5 6 7 8 9 5 6 7 8 9 6 7 8 9 10 7 8 9 10 11 8 9 10 11 12 9 10 11 12 13 Copyright 2005 Curt Hill Binary Addition Fact Table 0 1 0 0 1 1 1 10 Binary Addition 1 1 1 0111011 0110010 1 1 01 1 01 If we convert to decimal does it sum the same? Copyright 2005 Curt Hill Other bases • Binary has some problems, the largest of which is that it is very bulky • Decimal from binary is not an easy conversion – It also obscures structure • Most manufacturers use another power of two base to show things – Octal – base 8 = 23 – Hexadecimal – base 16 = 24 Copyright 2005 Curt Hill Octal • Base 8 has 8 digits, 0 – 7 and every place is raised to a power of 8 • Conversion to and from binary is way too easy – Partition into groups of 3 bits from right to left – Convert the three bits to octal • Preferred by certain manufacturers such as DEC and Intel Copyright 2005 Curt Hill Binary – Octal Conversion Start with binary 0110111001011101 Partition (right to left) in groups of 3 Write digits 0110111001011101 0 6 7 1 3 How easy is that? Conversion of octal to binary is the reverse Copyright 2005 Curt Hill 5 Hexadecimal • Base 16 has 16 digits, 0 – 9, A-F and every place is raised to a power of 16 – A=10, B=11, C=12, D=13, E=14, F=15 • Conversion to and from binary is also easy – Partition into groups of 4 bits – Convert the four bits to hexadecimal • Preferred by certain manufacturers such as IBM and Burroughs Copyright 2005 Curt Hill Binary – Hexadecimal Conversion Start with binary 0110111001011101 Partition (right to left) in groups of 4 Write digits 0110111001011101 6 E 5 D How easy is that? Conversion of hexadecimal to binary is the reverse Copyright 2005 Curt Hill Some Numbers Binary Octal Decimal Hex 00111011 73 59 3B 01100001 141 97 61 01110111 167 112 77 10111000 270 184 B8 11001001 311 201 C9 11101111 357 239 EF 11111101 375 253 FD Copyright 2005 Curt Hill