Information Science 1 -­‐Representa*on of Data in Memory-­‐ Week 03 College of Information Science and Engineering Ritsumeikan University Topics covered Basic terms and concepts of “The Structure of a Computer” l Positional numbering systems l – decimal – binary – octal – hexadecimal l Conversion among different bases - to decimal and from decimal - other conversions l Test 2 Recall Week 02 Digital system l Data, Binary l Memory, RAM l Bit, Byte, Computer Word, Address l CPU l CU, ALU, MAR, MDR, IR, GPR, PC, PSW l Machine Cycle, Fetch, Execute, Automatic Sequence Control l Input, Output l Computer Bus l 3 Objectives of this class To understand the fundamentals of numerical data representation and manipulation in computers l To master the skill of representing decimal numbers in the binary, octal, and hexadecimal systems l To be able to speak aloud a number in any of the four bases l To be able to convert from decimal to the above three numbering systems l 4 Recall: Computer as a digital system l A bit is the most basic (and, hence, the smallest) unit of information in a computer - It is a state of “on” or “off” in a digital circuit - Sometimes these states are also called as “high” or “low” (voltage) l A byte is a group of eight bits - A byte is the smallest (in principle) addressable unit of computer storage - “Addressable” means that a particular byte can be retrieved according to its location 5 Computer words and nibbles l A word is a contiguous group of bytes - Words can be any number of bytes or bits (word sizes of 32 or 64 bits are now most common) - In a word-addressable system, a word is the smallest addressable unit of memory storage l A group of four bits is called a nibble (or nybble) - A byte, therefore, consists of two nibbles: a “high-order” nibble, and a “low-order” nibble 00111100010110001010011000110111101 6 Positional numbering system l A positional numbering system (or positional notation system) is a numeral system in which each digit is related to the next by a constant multiplier called the base or radix of that system – The value of each digit position is, therefore, the value of its digit multiplied by a power of the base, where the power is determined by the digit's position counted from the separator (which is usually a dot “.” or comma “,”) – The value of a number is then calculated as the sum of the values of all positions 7 Decimal system l Decimal numbers have radix (base) = 10 (in Latin, “decima” means “a tenth part”) l Symbols used: l 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9 Position weights: … 103 1000 — For 102 101 100 10 100 . 10-1 10-2 10-3 … 1 1/10 1/100 1/1000 example, the decimal number 36.250: 36.250 = 3*10 + 6*1+ 2*1/10 + 5* 1/100 +0* 1/1000 8 Binary system Binary numbers have radix = 2 (in Latin, “bini” means “two together”) l Symbols used: 0 and 1 l The radix (≠10) is denoted by a subscript (2 l Position weights: l … 23 8 — For 22 21 20 . 2-1 2-2 2-3 … 4 2 1 1/4 1/8 1/2 example, the binary equivalent of 36.250: 36.250 = 1*32 + 1*4 + 1/4 = 100100.01(2 9 Octal system Octal numbers have radix = 8 (in Latin, “octo” means eight) l Symbols used: 0, 1, 2, 3, 4, 5, 6, and 7 l Convenient when bits are grouped in triplets l Position weights: l … 83 512 — For 82 81 80 . 8-1 8-2 64 8 1 1/64 1/8 2-3 … 1/512 example, the octal equivalent of 36.250: 36.250 = 4*8 + 4*1 + 2*1/8 = 44.2(8 10 Hexadecimal system Hexadecimal numbers have radix = 16 (in Greek, “hexa” means six) l Symbols used: 0, …, 9, A, B, C, D, E, and F l Convenient to represent nibbles l Position weights: l … 163 4096 162 161 256 16 160 . 16-1 16-2 16-3 … 1 1/16 1/256 1/4096 — For example, the hexadecimal equivalent of 36.250: 36.250 = 2*16 + 4*1 + 4*1/16 = 24.4(16 11 Radix r numbers l For any radix r number represented with n +m+1 digits as Number(r → an...a1 a0 . a-1...a-m , its decimal equivalent is calculated as follows: Number(10 = an×r n +...+a1×r 1 +a0 +a-1×r -1 +...+a-m×r –m n = ∑ar i i i=− m 12 Examples: ASCII (main code) 13 Examples: RGB color codes 14 Conversion among different systems l l We already learned these 3 conversions: Decimal Octal Hexadecimal Binary There still remain 9 other possible conversions 15 Converting decimal to another base l The rule — Left of the separator (i.e. of the decimal point): repeatedly divide the integer part by the radix and write the remainders (R) right to left — Right of the separator: repeatedly multiply the fractional part by the radix and write the integer portion (I) of the result left to right 16 Example: Decimal to binary 22.8125 = ?(2 22.8125 = 10110(2. 11 R 0 5 R1 2 R1 1 R0 0 R1 22.8125 = .1101(2 1.625 I 1 1.25 I 1 0.5 I0 1.0 I1 0 I0 22.8125 = 10110.1101(2 17 Other examples 1234 = ?(8 1234 = ?(16 1234 = 2322(8 154 R 2 19 R 2 2 R3 0 R2 1234 = 4D2(16 77 R 2 4 R 13 = D 0 R4 18 The remaining conversions To convert between binary, octal, and hexadecimal, memorize and use the conversion table (next slide): — Octal is 3 bits for each digit — Hexadecimal is 4 bits for each digit l Use binary as the intermediate to convert between octal and hexadecimal 0110100110.1(2 = ?(8 = ?(16 000 110 100 110.100 0001 1010 0110.1000 6 4 6 .4 1 A 6 .8 0110100110.1(2 = 646.4(8 = 1A6.8(16 19 l Conversion table Decimal Base 10 Binary Base 2 Octal Base 8 Hexadecimal Base 16 0(10 0000(2 0(8 0(16 1(10 0001(2 1(8 1(16 2(10 0010(2 2(8 2(16 3(10 0011(2 3(8 3(16 4(10 0100(2 4(8 4(16 5(10 0101(2 5(8 5(16 6(10 0110(2 6(8 6(16 7(10 0111(2 7(8 7(16 8(10 1000(2 10(8 8(16 9(10 1001(2 11(8 9(16 10(10 1010(2 12(8 A(16 11(10 1011(2 13(8 B(16 12(10 1100(2 14(8 C(16 13(10 1101(2 15(8 D(16 14(10 1110(2 16(8 E(16 15(10 1111(2 17(8 F(16 20 Key points of this lecture Because binary numbers are the basis for all data representation in digital systems, it is important that you become proficient with the binary system to understand the operation of all computer components as well as the design of computer architectures l The binary system is the most important positional numbering system for computers l 21 Key points (cont-d) l l It is, however, difficult to read long strings of bits, and even a modestly-sized decimal number becomes a very long binary number — For example, 1359510 = 11010100011011(2 — For compactness and ease of reading, binary values are usually expressed using the octal or hexadecimal system To convert among the different systems, use the conversion algorithms and, when appropriate, the conversion table 22 Homework l Read these slides again l Read slides for the next lecture and do the self-preparation assignments l Learn the vocabulary l Consult, when necessary, the textbook 23 Next class l Representation of data in memory (2) - Basic computer operation 24 Test 01 25