640 likes | 799 Views
Introduction to Computer Systems and Software. Lecture 2 of 2 Simon Coupland simonc@dmu.ac.uk. Representation of Data Within the Computer. Contents: Decimal and Binary Integer Numbers Binary Addition Signed Binary Numbers Overflow Hexadecimal Numbers Number Conversion Real Numbers
E N D
Introduction to Computer Systems and Software Lecture 2 of 2 Simon Coupland simonc@dmu.ac.uk
Representation of Data Within the Computer • Contents: • Decimal and Binary Integer Numbers • Binary Addition • Signed Binary Numbers • Overflow • Hexadecimal Numbers • Number Conversion • Real Numbers • Character Encoding
Introduction • A few terms: • A bit – a single Binary digIT, 0 or 1 • A byte – eight bits • A word – one or more bytes • Integer – whole number • Real number – a number with decimal points • Binary – Base 2 numbers • Octal – Base 8 numbers • Decimal – Base 10 numbers (everyday numbers) • Hexadecimal – Base 16 numbers
Decimal and Binary Numbers • We all use decimal numbers • Base 10 numbers • Example: 124
Decimal and Binary Numbers • Computers use binary numbers • Base 2 numbers: • Example: 124
Decimal and Binary Numbers • More binary numbers: 00010011 = 16 + 2 + 1 = 19 01011101 = 64 + 16 + 8 + 4 + 1 = 93 11111111 = 255 00000000 = 0
Binary Addition • When adding binary numbers we use binary logic • Binary Addition Truth Table 1:
Binary Addition • Binary Addition Truth Table 2:
Binary Addition • Binary Addition Example: 00010001 + 00011101 =
Binary Addition • Binary Addition Example: 00010001 + 00011101 = 0 1
Binary Addition • Binary Addition Example: 00010001 + 00011101 = 10
Binary Addition • Binary Addition Example: 00010001 + 00011101 = 110
Binary Addition • Binary Addition Example: 00010001 + 00011101 = 1110
Binary Addition • Binary Addition Example: 00010001 + 00011101 = 01110 1
Binary Addition • Binary Addition Example: 00010001 + 00011101 = 101110
Binary Addition • Binary Addition Example: 00010001 + 00011101 = 0101110
Binary Addition • Binary Addition Example: 00010001 + 00011101 = 00101110
Binary Addition • Binary Addition Q1: 00101101 + 00011001 =
Binary Addition • Binary Addition Q1: 00101101 + 00011001 = 01000110
Binary Addition • Binary Addition Q2: 00001110 + 00001111 =
Binary Addition • Binary Addition Q2: 00001110 + 00001111 = 00011101
Binary Addition • Binary Addition Q3: 01011001 + 00111011 =
Binary Addition • Binary Addition Q3: 01011001 + 00111011 = 10010011
Negative Binary Numbers • Sign-true Magnitude • Left most bit holds sign • Example: -10
Negative Binary Numbers • Ones complement • All 1’s and 0’s are switched • When negative, result = -255 + value • Example: -10
Negative Binary Numbers • Twos complement • Left most bit holds sign • When negative, result = -128 + result • Example: -10
Negative Binary Numbers • Conversion to Twos complement • Ones complement the byte/word • Add 1 • Example: 00001010 +10 11110101 Ones complement + 00000001 = 11110110
Why Use Twos Complement? • Because addition rules still work: 00010110 22 + 10001000 + -120 = 10011110 = -98
Overflow • Overflow is when the number of bits is too small to store the result of an arithmetic operation • Example (twos complement) : 01011001 89 + 01111011 + 123 = 11010011 = -45
Overflow • Overflow can be easily detected for signed binary numbers • Errors can then be corrected • Adding two positive numbers should give a positive result • Adding two negative numbers should give a negative result • Adding a positive and negative number together can never result in overflow. Why?
Hexadecimal Numbers • Writing code with long binary numbers would be cumbersome and error prone • A hexadecimal digit can take 16 values (0-F) • One hex digit can represent a four bit word • Examples:
Number Conversion • Binary to Hexadecimal: • From the least significant (rightmost) bit split the binary number into groups of four bits. • Each 4 bits has a hexadecimal equivalent • Example: 0001001110011110 0001 0011 1001 1110 1 3 9 E 139E
Number Conversion • Hexadecimal to Binary: • Convert each hexadecimal digit into its 4 bit binary equivalent • Join the all 4 bit words together • Example: A42F A 4 2 F 1010 0100 0010 1111 1010010000101111
Number Conversion • Question • Hexadecimal to Binary: • Convert D36B into binary
Number Conversion • Question • Hexadecimal to Binary: • Convert D36B into binary D 3 6 B 1101 0011 0110 1011
Number Conversion • Question • Binary to Hexadecimal: • Convert 1001101001001010 into hexadecimal
Number Conversion • Question • Binary to Hexadecimal: • Convert 1001101001001010 into hexadecimal 1001 1010 0100 1010 9 A 8 A 9A8A
Number Conversion • Decimal to Binary • Use the following algorithm, begin with LSB int dec_value = some_number; int next_bit; while(dec_value > 0) { next_bit = dec_value % 2; dec_value = dec_value / 2; }
Number Conversion • Decimal to Binary • Convert 42 to binary:
Number Conversion • Question • Convert 39 to binary:
Number Conversion • Question • Convert 39 to binary:
Number Conversion • Binary to Decimal • Use the following algorithm, begin with MSB int dec_value = 0; int bit_value; int bit_index = MSB_index; while(bit_index >= 0) { bit_value = word[bit_index]; dec_value = dec_value * 2 + bit_value; bit_index--; }
Number Conversion • Binary to Decimal • Convert 011010 to decimal:
Number Conversion • Binary to Decimal • Question, convert 101110 to decimal:
Number Conversion • Binary to Decimal • Question, convert 101110 to decimal:
Number Conversion • Decimal to Hexadecimal • Use the following algorithm, begin with LSB int dec_value = some_number; char hex_digit; while(dec_value > 0) { hex_digit = to_hex(dec_value % 16); dec_value = dec_value / 16; }
Number Conversion • Decimal to Hexadecimal • Convert 1863 to hexadecimal
Number Conversion • Decimal to Hexadecimal • Question, convert 1437 to hexadecimal
Number Conversion • Decimal to Hexadecimal • Question, convert 1437 to hexadecimal
Number Conversion • Hexadecimal to Decimal • Use the following algorithm, begin with MSB int dec_value = 0; char digit_value; while(!word.off) { digit_value = to_dec(hex_digit); dec_value = dec_value * 16 + digit_value; }