Number Representation Number Representation CS10001: Programming & Data Structures Programming & Data Structures CS10001: Pallab Dasgupta Dasgupta Pallab Professor, Dept. of Computer Sc. & Engg Engg., ., Professor, Dept. of Computer Sc. & Indian Institute of Technology Kharagpur Kharagpur Indian Institute of Technology Dept. of CSE, IIT KGP
Topics to be Discussed Topics to be Discussed How are numeric data items actually stored in computer memory? How are numeric data items actually stored in computer memory? • • How much space (memory locations) is allocated for each type of How much space (memory locations) is allocated for each type of • • data? data? – int int, float, char, etc. , float, char, etc. – How are characters and strings stored in memory? How are characters and strings stored in memory? • • Dept. of CSE, IIT KGP
Number System :: The Basics Number System :: The Basics We are accustomed to using the so- -called called decimal number decimal number We are accustomed to using the so • • system . . system Ten digits :: 0,1,2,3,4,5,6,7,8,9 Ten digits :: 0,1,2,3,4,5,6,7,8,9 – – Every digit position has a weight which is a power of 10. Every digit position has a weight which is a power of 10. – – Base or or radix radix is 10. is 10. Base – – Example: Example: 2 + 3 x 10 1 + 4 x 10 0 234 = 2 x 10 = 2 x 10 2 + 3 x 10 1 + 4 x 10 0 234 2 + 5 x 10 1 + 0 x 10 0 + 6 x 10 250.67 = 2 x 10 2 + 5 x 10 1 + 0 x 10 0 + 6 x 10 - -1 1 250.67 = 2 x 10 + 7 x 10 - -2 2 + 7 x 10 Dept. of CSE, IIT KGP
Binary Number System Binary Number System Two digits: Two digits: • • 0 and 1. 0 and 1. – – Every digit position has a weight which is a power of 2. Every digit position has a weight which is a power of 2. – – Base or or radix radix is 2. is 2. Base – – Example: Example: • • 2 + 1 x 2 1 + 0 x 2 110 = 1 x 2 2 + 1 x 2 1 + 0 x 2 0 0 110 = 1 x 2 2 + 0 x 2 1 + 1 x 2 0 + 0 x 2 1 + 1 x 2 -1 -2 2 101.01 = 1 x 2 2 + 0 x 2 1 + 1 x 2 0 + 0 x 2 - + 1 x 2 - 101.01 = 1 x 2 Dept. of CSE, IIT KGP
Binary- -to to- -Decimal Conversion Decimal Conversion Binary Each digit position of a binary number has a weight. Each digit position of a binary number has a weight. • • – Some power of 2. Some power of 2. – A binary number: A binary number: • • B = b n B = b 1 b b n 2 …..b …..b 1 1 b b 0 0 . b . b - 1 b b - 2 ….. b ….. b - n- -1 n- -2 -1 -2 -m m Corresponding value in decimal: Corresponding value in decimal: n-1 Σ D = Σ i b i 2 i D = b i 2 i = -m Dept. of CSE, IIT KGP
Examples Examples 5 + 0x2 4 + 1x2 3 + 0x2 2 + 1x2 1 + 1x2 101011 � � 1x2 1x2 5 + 0x2 4 + 1x2 3 + 0x2 2 + 1x2 1 + 1x2 0 0 1. 1. 101011 = 43 = 43 (101011) 2 = (43) 10 (101011) 2 = (43) 10 1 + 1x2 2 + 0x2 3 + 1x2 .0101 � � 0x2 0x2 - -1 + 1x2 - -2 + 0x2 - -3 + 1x2 - -4 4 2. 2. .0101 = .3125 = .3125 (.0101) 2 = (.3125) 10 (.0101) 2 = (.3125) 10 2 + 0x2 1 + 1x2 0 + 1x2 1 + 1x2 101.11 � � 1x2 1x2 2 + 0x2 1 + 1x2 0 + 1x2 - -1 + 1x2 - -2 2 3. 3. 101.11 5.75 5.75 (101.11) 2 = (5.75) 10 (101.11) 2 = (5.75) 10 Dept. of CSE, IIT KGP
Decimal- -to to- -Binary Conversion Binary Conversion Decimal Consider the integer and fractional parts Consider the integer and fractional parts • • separately. separately. For the integer part, For the integer part, • • – Repeatedly divide the given number by 2, and go on Repeatedly divide the given number by 2, and go on – accumulating the remainders, until the number becomes accumulating the remainders, until the number becomes zero. zero. – Arrange the remainders Arrange the remainders in reverse order . in reverse order . – For the fractional part, For the fractional part, • • – Repeatedly multiply the given fraction by 2. Repeatedly multiply the given fraction by 2. – • Accumulate the integer part (0 or 1). Accumulate the integer part (0 or 1). • • If the integer part is 1, chop it off. If the integer part is 1, chop it off. • – Arrange the integer parts Arrange the integer parts in the order in the order they are obtained. they are obtained. – Dept. of CSE, IIT KGP
Example 1 :: 239 Example 1 :: 239 2 239 2 119 --- 1 2 59 --- 1 2 29 --- 1 2 14 --- 1 (239) 10 = (11101111) 2 2 7 --- 0 2 3 --- 1 2 1 --- 1 2 0 --- 1 Dept. of CSE, IIT KGP
Example 2 :: 64 Example 2 :: 64 64 2 2 32 --- 0 2 16 --- 0 2 8 --- 0 2 4 --- 0 (64) 10 = (1000000) 2 2 2 --- 0 2 1 --- 0 2 0 --- 1 Dept. of CSE, IIT KGP
Example 3 :: .634 Example 3 :: .634 .634 x 2 = 1.268 .268 x 2 = 0.536 .536 x 2 = 1.072 (.634) 10 = (.10100……) 2 .072 x 2 = 0.144 .144 x 2 = 0.288 : : Dept. of CSE, IIT KGP
Example 4 :: 37.0625 Example 4 :: 37.0625 (37) 10 = (100101) 2 (.0625) 10 = (.0001) 2 ∴ (37.0625) 10 = (100101 . 0001) 2 Dept. of CSE, IIT KGP
Hexadecimal Number System Hexadecimal Number System A compact way of representing binary numbers. A compact way of representing binary numbers. • • 16 different symbols (radix = 16). 16 different symbols (radix = 16). • • � 0000 � 1000 0 � 8 � 0000 1000 0 8 1 � � 0001 9 � � 1001 0001 1001 1 9 � 0010 � 1010 2 � A � 0010 1010 2 A � 0011 � 1011 3 � B � 3 0011 B 1011 � 0100 � 1100 4 � C � 0100 1100 4 C � 0101 � 1101 5 � D � 0101 1101 5 D 6 � � 0110 E � � 1110 6 0110 E 1110 � 0111 � 1111 7 � F � 0111 1111 7 F Dept. of CSE, IIT KGP
Binary- -to to- -Hexadecimal Conversion Hexadecimal Conversion Binary For the integer part, For the integer part, • • – Scan the binary number from Scan the binary number from right to left . right to left . – – Translate each group of four bits into the corresponding Translate each group of four bits into the corresponding – hexadecimal digit. hexadecimal digit. • Add Add leading leading zeros if necessary. zeros if necessary. • For the fractional part, For the fractional part, • • – Scan the binary number from Scan the binary number from left to right left to right . . – – Translate each group of four bits into the corresponding Translate each group of four bits into the corresponding – hexadecimal digit. hexadecimal digit. • Add Add trailing trailing zeros if necessary. zeros if necessary. • Dept. of CSE, IIT KGP
Example Example 1. 1. (1011 ( 1011 0100 0100 0011 0011) ) 2 = (B43) 16 = (B43) 2 16 2. (10 10 1010 1010 0001 0001) ) 2 = (2A1) 16 2. ( = (2A1) 2 16 3. 3. (.1000 (. 1000 010 010) ) 2 = (.84) 16 = (.84) 2 16 4. (101 101 . . 0101 0101 111 111) ) 2 = (5.5E) 16 4. ( = (5.5E) 2 16 Dept. of CSE, IIT KGP
Hexadecimal- -to to- -Binary Conversion Binary Conversion Hexadecimal Translate every hexadecimal digit into its 4- Translate every hexadecimal digit into its 4 -bit binary bit binary • • equivalent. equivalent. Examples: Examples: • • (3A5) 16 = (0011 1010 0101) 2 (3A5) = (0011 1010 0101) 16 2 (12.3D) 16 = (0001 0010 . 0011 1101) 2 (12.3D) = (0001 0010 . 0011 1101) 16 2 (1.8) 16 = (0001 . 1000) 2 (1.8) = (0001 . 1000) 16 2 Dept. of CSE, IIT KGP
Unsigned Binary Numbers Unsigned Binary Numbers An n- -bit binary number bit binary number An n • • B = b n B = b 1 b b n 2 …. b …. b 2 2 b b 1 1 b b 0 n- -1 n- -2 0 n distinct combinations are possible, 0 to 2 • 2 2 n distinct combinations are possible, 0 to 2 n n - -1. 1. • For example, for n = 3, there are 8 distinct combinations. For example, for n = 3, there are 8 distinct combinations. • • – 000, 001, 010, 011, 100, 101, 110, 111 000, 001, 010, 011, 100, 101, 110, 111 – Range of numbers that can be represented Range of numbers that can be represented • • � � 0 to 2 8 8 - n=8 n=8 0 to 2 -1 (255) 1 (255) � � 16 - n=16 0 to 2 16 -1 (65535) 1 (65535) n=16 0 to 2 � � 32 - n=32 0 to 2 32 -1 (4294967295) 1 (4294967295) n=32 0 to 2 Dept. of CSE, IIT KGP
Signed Integer Representation Signed Integer Representation Many of the numerical data items that are used in a program are Many of the numerical data items that are used in a program are • • signed (positive or negative). signed (positive or negative). – Question:: How to represent sign? Question:: How to represent sign? – Three possible approaches: Three possible approaches: • • – Sign Sign- -magnitude representation magnitude representation – – One’s complement representation One’s complement representation – – Two’s complement representation Two’s complement representation – Dept. of CSE, IIT KGP
Sign- -magnitude Representation magnitude Representation Sign For an n- For an n -bit number representation bit number representation • • – The most significant bit (MSB) indicates sign The most significant bit (MSB) indicates sign – � positive 0 � positive 0 � negative 1 � negative 1 – The remaining n The remaining n- -1 bits represent magnitude. 1 bits represent magnitude. – b n-1 b n-2 b 1 b 0 Sign Magnitude Dept. of CSE, IIT KGP
Recommend
More recommend