IT-101 Section 001 Introduction to Information Technology Lecture #4 Overview Chapter 3: Bits vs. Bytes Representing real numbers in binary form Representing negative numbers in binary form Octal numbering system Hexadecimal numbering system Conversion between different numbering systems Representing alphanumeric characters in binary form Bits vs. Bytes “Bits” are often used in terms of a data rate, or speed of information flow: 56 Kilobit per second modem (56 Kbps) A T-1 is 1.544 Megabits per second (1.544 Mbps or 1544 Kbps) “Bytes” are often used in terms of storage or capacity-computer memories are organized in terms of 8 bits 256 Megabyte (MB) RAM 40 Gigabyte (GB) Hard disk Practical Use Everyday stuff measured in bits: 32-bit sound card 64-bit video accelerator card 128-bit encryption in your browser Note! The Multipliers for Bits and Bytes are Slightly Different. “Kilo” or “Mega” have slightly different values when used with bits per second or with bytes. When Referring to Bytes (as in computer memory) Kilobyte (KB) 210 = 1,024 bytes Megabyte (MB) 220 = 1,048,576 bytes Gigabyte (GB) 230 = 1,073,741,824 bytes Terabyte (TB) 240 = 1,099,511,627,776 bytes When Referring to Bits Per Second (as in transmission rates) Kilobit per second (Kbps) = 1000 bps (thousand) Megabit per second (Mbps) = 1,000,000 bps (million) Gigabit per second (Gbps) = 1,000,000,000 bps (billion) Terabit per second (Tbps) = 1,000,000,000,000 bps (trillion) More Multipliers for Measuring Bytes Kilobyte (K) 210 = 1,024 bytes Megabyte (M) 220 = 1,048,576 bytes Gigabyte (G) 230 = 1,073,741,824 bytes Terabytes (T) 240 = 1,099,511,627,776 bytes Petabytes (P) 250 = 1,125,899,906,842,624 bytes Exabytes (E) 260 = 1,152,921,504,606,846,976 bytes Zettabytes (Z) 270 = 1,180,591,620,717,411,303,424 bytes Yottabytes (Y) 280 = 1,208,925,819,614,629,174,706,176 bytes Representing Real Numbers in Binary Form Previously, we learned how to represent integers in binary form Real numbers can be represented in binary form as well We will illustrate this with a thermometer example: A Mercury thermometer reflects temperature that can continuously vary over its range of measurement (an analog device) A digital thermometer would require an infinite number of bits to accomplish the same thing So: if we are building a digital thermometer, we must make some choices and determine some parameters: Precision (number of bits we will use) vs. the cost Accuracy (how true is our measurement against a given standard) What is the range we wish to measure? How many bits are we willing to use? Suppose we want to measure the temperature range: -40º F to 140º F Total measurement range = 180 º F If our thermometer measures in 0.01º increments, we need to represent 18,000 steps (There are 180 º degrees between -40 º to 140 ºF. Since each degree can have 100 different values, the number of possible values that the thermometer can measure is: 180x100=18,000) We can accomplish this with a 15 bit code (A 15 bit code can represent 215=32,768 different values-since we have 18,000 different values we have to represent, a code with 14 bits will not suffice, as a 14-bit code can only represent 214=16,384 values) Thermometer Coding (One solution) 15 bit code 140.00º F 139.99º F 139.98º F 139.97º F 100011001010000 100011001001111 100011001001110 100011001001101 0.00º F 000111110100000 -39.98º F -39.99º F -40.00º F 000000000000010 000000000000001 000000000000000 Thermometer Coding (Another solution) 0.04º F 0.03º F 0.02º F 0.01º F 0.00º F -0.01º F -0.02º F -0.03º F 000000000000100 000000000000011 000000000000010 000000000000001 000000000000000 111111111111111 111111111111110 111111111111101 Representing Negative Numbers in Binary Form Negative numbers may also be represented in binary This may be accomplished a number of ways: The leftmost bit i.e.: MSB may be used to represent the sign. i.e.: 0 if positive, 1 if negative. ex: 1110 is a negative number because MSB is “1”. In decimal, this will correspond to -6. Positive 6 (+6) may then be represented by: 0110 There is a problem with this scheme in computer logic, because addition of these numbers in binary will result in: Positive number 0110 +1110 Negative number overflow 1 0100 The result is not 0, it is: 410 with a 1 overflow Step1 Step2 This would cause errors in computing To overcome this problem, we can represent the negative number by using the 2’s complement notation: Take the complement (flip the bit values) of the positive number with the MSB as a sign bit (a 0 makes the representation positive) The binary complement of: 0110 is: 1001 Add a binary 1 1001 + 1 = 1010 (-6) The addition of the original number (+6) and it’s 2’s complemented value (-6) should give zero: Positive number 0110 +1010 Negative number 1 0000 overflow – The result is 0, with a 1 overflow Example: Express the decimal number -5 in 5-bit binary notation. First determine the 5-bit binary representation of 5: 00101 Then complement (change 1s to 0s and 0s to 1s) each bit: 11010 Finally, add 1: 11011 -5 = 11011 in 2’s complement notation (To reverse the process take the complement and add 1!) Note that the 2’s complement of a 2’s complement of a number equals the original number. In-class Examples Determine the 5-bit binary equivalent of -7 in 2’s complement notation and show how to reverse the process. Determine the decimal value of the 6-bit 2’s complement number given by 111111. Octal Numbering system There are other ways to “count ” besides the decimal and binary systems. One example is the octal numbering system (base 8). The Octal numbering system uses the first 8 numerals starting from 0 The first 20 numbers in the octal system are: 0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17, 20 21,22,23 Because there are 8 numerals and 8 patterns that can be formed by 3 bits, a single octal number may be used to represent a group of 3 bits Octal numeral Bit pattern 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111 Start here For example, the number 1010010101112 may be converted to octal form by grouping the bits into 3, and looking at the table. Starting from the right, count 3 digits to the left. The first 3-bits are: 111, corresponding to 7. The next 3-bits are: 010, corresponding to 2. The next are 001, corresponding to 1 and the last 3-bits are 101, corresponding to 5 Hence, the above binary number may be represented by: 51278 in octal form Hexadecimal Numbering system The hex system uses 16 numerals, starting with zero The standard decimal system only provides 10 different symbols So, the letters A-F are used to fill out a set of 16 different numerals We can use hex to represent a grouping of 4 bits Decimal Octal Hex Binary 0 0 0 0000 1 1 1 0001 2 2 2 0010 3 3 3 0011 4 4 4 0100 5 5 5 0101 6 6 6 0110 7 7 7 0111 8 10 8 1000 9 11 9 1001 10 12 A 1010 11 13 B 1011 12 14 C 1100 13 15 D 1101 14 16 E 1110 15 17 F 1111 Start here For example, the number 1010110101112 may be converted to hexadecimal form by grouping the bits into 4, and looking at the table. Starting from the right, count 4 digits to the left. The first 4-bits are: 0111, corresponding to 716. The next 4-bits are: 1101, corresponding to D16. The last bits are: 1010, corresponding to A16 Hence, the above binary number may be represented by: AD716 in hexadecimal form Conversion between different numbering systems Conversions are possible between different numbering systems: 1-Binary to Decimal and vice versa 2-Binary to Octal and vice versa 3-Binary to Hex and vice versa 4-Octal to Decimal and vice versa 5-Hex to Decimal and vice versa 6-Octal to Hex and vice versa We learned how to do # 1 in detail in the previous lecture We learned how to do # 2 and 3 in this lecture We will learn how to do # 4, 5 and 6 now To convert octal and hex to decimal, we apply the same technique as converting binary to decimal. Remember that we summed together the weights of the various positions in the binary number which contained a “1” to convert from binary to decimal. Similarly, we sum the weights of the various positions in the octal or hex numbers depending on the base being used Remember that binary is base 2, octal is base 8 and hex is base 16 Two examples of octal to decimal coversion: Two examples of hex to decimal coversion: 778 converted to decimal form: 7x81+7x80 =6310 26358 converted to decimal form: 2x83+ 6x82+3x81+5x80=143710 A516 is converted to decimal form by: 10x161+5x160 =16510 F8C16 is converted to decimal form by: 15x162+8x161+12x160 =398010 To convert from octal to hex (or hex to octal), first convert octal (or hex) to binary, and then convert binary to hex (or octal). Representing Alphanumeric Characters in Binary form (ASCII) It is important to be able to represent text in binary form as information is entered into a computer via a keyboard Text may be encoded using ASCII ASCII can represent: Numerals Letters in both upper and lower cases Special “printing” symbols such as @, $, %, etc. Commands that are used by computers to represent carriage returns, line feeds, etc ASCII is an acronym for American Standard Code for Information Interchange Its structure is a 7 bit code (plus a parity bit or an “extended” bit in some implementations –ASCII can represent 128 symbols (27 symbols) –INFT 101 is: 73 78 70 84 32 49 48 49 (decimal) or –1001001 1001110 1000110 1010100 0100000 0110001 0110000 0110001 in binary (using Appendix A) –A complete ASCII chart may be found in appendix A in your book –How do you spell Lecture in ASCII? Extended ASCII Chart This ASCII chart illustrates Decimal and Hex representation of numbers, text and special characters Hex can be easily converted to binary Upper case D is 4416 416 is 01002 Upper case D is then 0100 0100 in binary Extended ASCII (Cont…) Another example: You want to represent the Yen sign (¥) From the table: 9D 916 = 910 = 10012 D16 = 1310 = 11012 The ¥ sign in binary is: 1001 1101 ASCII conversion example Let us convert You & I, to decimal, hex and binary using the ASCII code table : Y: 8910 o: 11110 u: 11710 Space: 3210 &: 3810 Space: 3210 I: 7310 ,: 4410 5916 10110012 6F16 11011112 7516 11101012 2016 01000002 2616 01001102 2016 01000002 4916 10010012 2C16 01011002 You & I, in Hex: You & I, in decimal: 59 6F 75 20 26 20 49 2C 89 111 117 32 38 32 73 44 You & I, in binary: 1011001 1101111 1110101 0100000 0100110 0100000 1001001 0101100 Other Text Codes Extended Binary Coded Decimal Interchange Code (EBCDIC) used by IBM-- 8 bit (28 bits) 256 symbols Unicode is 16 bit (216) 65,536 symbols World Wide Web supports many languages Unicode supports Latin, Russian, Cherokee and other alphabet representations www.unicode.org