Introduction to Computer Systems and Software Lecture 2 of 2 Simon Coupland
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 Digit Digit Value Digit Value10M1M100k10k1k Example
Decimal and Binary Numbers Computers use binary numbers Base 2 numbers: Example: 124 Bit Bit Value Example
Decimal and Binary Numbers More binary numbers: = = = = = = 0
Binary Addition When adding binary numbers we use binary logic Binary Addition Truth Table 1: ABA + BCarry
Binary Addition Binary Addition Truth Table 2: ABCarry (in)A + BCarry (out)
Binary Addition Binary Addition Example: =
Binary Addition Binary Addition Example: = 0 1
Binary Addition Binary Addition Example: = 10
Binary Addition Binary Addition Example: = 110
Binary Addition Binary Addition Example: = 1110
Binary Addition Binary Addition Example: =
Binary Addition Binary Addition Example: =
Binary Addition Binary Addition Example: =
Binary Addition Binary Addition Example: =
Binary Addition Binary Addition Q1: =
Binary Addition Binary Addition Q1: =
Binary Addition Binary Addition Q2: =
Binary Addition Binary Addition Q2: =
Binary Addition Binary Addition Q3: =
Binary Addition Binary Addition Q3: =
Negative Binary Numbers Sign-true Magnitude Left most bit holds sign Example: -10 Bit Bit Valuesign Bit Value+/ Example
Negative Binary Numbers Ones complement All 1’s and 0’s are switched When negative, result = value Example: -10 Bit Bit Value Example
Negative Binary Numbers Twos complement Left most bit holds sign When negative, result = result Example: -10 Bit Bit ValueSign Bit Value+/ Example
Negative Binary Numbers Conversion to Twos complement Ones complement the byte/word Add 1 Example: Ones complement =
Why Use Twos Complement? Because addition rules still work: = = -98
Overflow Overflow is when the number of bits is too small to store the result of an arithmetic operation Example (twos complement) : = = -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: DecimalHexadecimalBinary A A
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: E
Number Conversion Hexadecimal to Binary: Convert each hexadecimal digit into its 4 bit binary equivalent Join the all 4 bit words together Example: A42F
Number Conversion Question Hexadecimal to Binary: Convert D36B into binary
Number Conversion Question Hexadecimal to Binary: Convert D36B into binary D 3 6 B
Number Conversion Question Binary to Hexadecimal: Convert into hexadecimal
Number Conversion Question Binary to Hexadecimal: Convert into hexadecimal A 8 A
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: dec_value/2%2Result
Number Conversion Question Convert 39 to binary:
Number Conversion Question Convert 39 to binary: dec_value/2%2Result
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 to decimal: bit_indexbit_valuedec_value
Number Conversion Binary to Decimal Question, convert to decimal:
Number Conversion Binary to Decimal Question, convert to decimal: bit_indexbit_valuedec_value
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 dec_valuedec_value / 16dec_value % 16hex_digit
Number Conversion Decimal to Hexadecimal Question, convert 1437 to hexadecimal
Number Conversion Decimal to Hexadecimal Question, convert 1437 to hexadecimal dec_valuedec_value / 16dec_value % 16hex_digit D
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; }
Number Conversion Hexadecimal to Decimal Convert F2AC to decimal Indexhex_valuedec_valueresult 3F A C
Number Conversion Hexadecimal to Decimal Convert E59A to decimal
Number Conversion Hexadecimal to Decimal Convert E59A to decimal Indexhex_valuedec_valueresult 3E A
Real Numbers A number n is a real number if n % 1 != 0 Take a lot of processing power/time Often math co-processors are used to perform arithmetic on these numbers
Fixed Point Real Numbers Similar to integer representation 8 bit example: Bit value-/ value-/
Fixed Point Real Numbers Maximum number is small Accuracy is limited Not used because of these reasons
Floating Point Real Numbers Floating point numbers are held in two parts Mantissa Exponent In 10 4 The mantissa is The exponent is 4
Floating Point Real Numbers Example (not IEEE float): mantissaexponent Mantissa = 809 Exponent =
Character Encoding ASCII EBCDIC UNICODE ISO
Character Encoding ASCII American Standard Code for Information Interchange Characters are represented by integers Table in your notes A = 65 B = 66 a = 96 z = = 64
Character Encoding ASCII Special functions characters are also encoded Examples: Carriage return = 13 Escape = 27 Space = 32
Recap Binary numbers can be signed of unsigned Twos complement gives simple addition Overflow - when the result of a arithmetic operation is too large to be represented Hexadecimal numbers – base 16 Real numbers use floating point Characters are represented as intergers