Binary Numbers Material on Data Representation can be found in Chapter 2 of Computer Architecture (Nicholas Carter) CSC 370 (Blum)

Slides:



Advertisements
Similar presentations
Assembly Language and Computer Architecture Using C++ and Java
Advertisements

Assembly Language and Computer Architecture Using C++ and Java
Binary Number Systems.
Binary Representation and Computer Arithmetic
Dr. Bernard Chen Ph.D. University of Central Arkansas
The Binary Number System
ES 244: Digital Logic Design Chapter 1 Chapter 1: Introduction Uchechukwu Ofoegbu Temple University.
CSIT 301 (Blum)1 Recap so far (Not gotten to last time) So there were issues about the number of operands. –Recall that we have a fetch-execute cycle –
Binary Numbers. Why Binary? Maximal distinction among values  minimal corruption from noise Imagine taking the same physical attribute of a circuit,
Computer Arithmetic Nizamettin AYDIN
IT253: Computer Organization
Floating Point (a brief look) We need a way to represent –numbers with fractions, e.g., –very small numbers, e.g., –very large numbers,
CH09 Computer Arithmetic  CPU combines of ALU and Control Unit, this chapter discusses ALU The Arithmetic and Logic Unit (ALU) Number Systems Integer.
PHY 201 (Blum)1 Binary Numbers. PHY 201 (Blum)2 Why Binary? Maximal distinction among values  minimal corruption from noise Imagine taking the same physical.
Binary Numbers. Why Binary? Maximal distinction among values  minimal corruption from noise Imagine taking the same physical attribute of a circuit,
CSC 221 Computer Organization and Assembly Language
Number Systems & Operations
CSC 370 (Blum)1 Binary Numbers Material on Data Representation can be found in Chapter 2 of Computer Architecture (Nicholas Carter)
CS1Q Computer Systems Lecture 2 Simon Gay. Lecture 2CS1Q Computer Systems - Simon Gay2 Binary Numbers We’ll look at some details of the representation.
Binary Arithmetic.
PHY 201 (Blum)1 Shift registers and Floating Point Numbers Chapter 11 in Tokheim.
PHY 201 (Blum)1 Shift registers and Floating Point Numbers Chapter 11 in Tokheim.
Cosc 2150: Computer Organization Chapter 9, Part 3 Floating point numbers.
1 CE 454 Computer Architecture Lecture 4 Ahmed Ezzat The Digital Logic, Ch-3.1.
Chapter 9 Computer Arithmetic
William Stallings Computer Organization and Architecture 8th Edition
Floating Point Numbers
Floating Point Representations
Data Representation COE 308 Computer Architecture
Binary & Hex Review.
Backgrounder: Binary Math
Chapter 2 Binary Number Systems.
Dr.Faisal Alzyoud 2/20/2018 Binary Arithmetic.
Data Representation ICS 233
Data Representation.
A brief comparison of integer and double representation
Digital Logic & Design Dr. Waseem Ikram Lecture 02.
Digital Systems and Number Systems
Data Representation Binary Numbers Binary Addition
COMPUTING FUNDAMENTALS
A Level Computing Component 2
William Stallings Computer Organization and Architecture 7th Edition
IT 0213: INTRODUCTION TO COMPUTER ARCHITECTURE
Data Structures Mohammed Thajeel To the second year students
Chapter 2 Bits, Data Types & Operations Integer Representation
Shift registers and Floating Point Numbers
Number Representations
Binary Numbers Material on Data Representation can be found in Chapter 2 of Computer Architecture (Nicholas Carter) CSIT 301 (Blum)
Data Representation Data Types Complements Fixed Point Representation
How to represent real numbers
Digital Logic & Design Lecture 02.
ECEG-3202 Computer Architecture and Organization
Number Representation
Binary Numbers.
Chapter 3 DataStorage Foundations of Computer Science ã Cengage Learning.
Chapter 8 Computer Arithmetic
Data Representation ICS 233
Floating Point Numbers
Binary Numbers Material on Data Representation can be found in Chapter 2 of Computer Architecture (Nicholas Carter) CSIT 301 (Blum)
Shift registers and Floating Point Numbers
Binary & Hex Review.
Chapter3 Fixed Point Representation
Number Representations
Data Representation COE 308 Computer Architecture
Presentation transcript:

Binary Numbers Material on Data Representation can be found in Chapter 2 of Computer Architecture (Nicholas Carter) CSC 370 (Blum)

Why Binary? Maximal distinction among values  minimal corruption from noise Imagine taking the same physical attribute of a circuit, e.g. a voltage lying between 0 and 5 volts, to represent a number The overall range can be divided into any number of regions CSC 370 (Blum)

Don’t sweat the small stuff For decimal numbers, fluctuations must be less than 0.25 volts For binary numbers, fluctuations must be less than 1.25 volts 5 volts 0 volts Decimal Binary CSC 370 (Blum)

Range actually split in three High Forbidden range Low CSC 370 (Blum)

It doesn’t matter …. Two of the standard voltages coming from a computer’s power supply are ideally supposed to be 5.00 volts and 12.00 volts Typically they are 5.14 volts or 12.22 volts or some such value. So what, who cares. CSC 370 (Blum)

How to represent big integers Use positional weighting, same as with decimal numbers 205 = 2102 + 0101 + 5100 11001101 = 127 + 126 + 025 + 024 + 123 + 122 + 021 + 120 = 128 + 64 + 8 + 4 + 1 = 205 CSC 370 (Blum)

Converting 205 to Binary 205/2 = 102 with a remainder of 1, place the 1 in the least significant digit position Repeat 102/2 = 51, remainder 0 1 1 CSC 370 (Blum)

Iterate 51/2 = 25, remainder 1 25/2 = 12, remainder 1 1 1 CSC 370 (Blum)

Iterate 6/2 = 3, remainder 0 3/2 = 1, remainder 1 1/2 = 0, remainder 1 1 1 1 CSC 370 (Blum)

Recap 205 1 127 + 126 + 025 + 024 + 123 + 122 + 021 + 120 CSC 370 (Blum)

Adding Binary Numbers Same as decimal; if the sum of digits in a given position exceeds the base (10 for decimal, 2 for binary) then there is a carry into the next higher position 1 3 9 + 5 7 4 CSC 370 (Blum)

Adding Binary Numbers 1 + carries CSC 370 (Blum)

Uh oh, overflow What if you use a byte (8 bits) to represent an integer A byte may not be enough to represent the sum of two such numbers. 1 CSC 370 (Blum)

Biggest unsigned integers 4 bit: 1111  15 = 24 - 1 8 bit: 11111111  255 = 28 – 1 16 bit: 1111111111111111  65535= 216 – 1 32 bit: 11111111111111111111111111111111  4294967295= 232 – 1 Etc. CSC 370 (Blum)

Bigger Numbers You can represent larger numbers by using more words You just have to keep track of the overflows to know how the lower numbers (less significant words) are affecting the larger numbers (more significant words) CSC 370 (Blum)

Negative numbers Negative x is the number that when added to x gives zero Ignoring overflow the two eight-bit numbers above sum to zero 1 CSC 370 (Blum)

Two’s Complement Step 1: exchange 1’s and 0’s Step 2: add 1 (to the lowest bit only) 1 1 1 CSC 370 (Blum)

Riddle 1 Is it 214? Or is it – 42? Or is it Ö? Or is it …? It’s a matter of interpretation How was it declared? 1 CSC 370 (Blum)

3-bit signed and unsigned 7 1 6 5 4 3 2 3 1 2 -1 -2 -3 -4 Think of driving a brand new car in reverse. What would happen to the odometer? CSC 370 (Blum)

Biggest signed integers 4 bit: 0111  7 = 23 - 1 8 bit: 01111111  127 = 27 – 1 16 bit: 0111111111111111  32767= 215 – 1 32 bit: 01111111111111111111111111111111  2147483647= 231 – 1 Etc. CSC 370 (Blum)

Hexadecimal Numbers Even moderately sized decimal numbers end up as long strings in binary Hexadecimal numbers (base 16) are often used because the strings are shorter and the conversion to binary is easier There are 16 digits: 0-9 and A-F CSC 370 (Blum)

Decimal  Binary  Hex 0  0000  0 1  0001  1 2  0010  2 3  0011  3 4  0100  4 5  0101  5 6  0110  6 7  0111  7 8  1000  8 9  1001  9 10  1010  A 11  1011  B 12  1100  C 13  1101  D 14  1110  E 15  1111  F CSC 370 (Blum)

Binary to Hex Break a binary string into groups of four bits (nibbles) Convert each nibble separately 1 E C 9 CSC 370 (Blum)

Numbers from Logic All of the numerical operations we have talked about are really just combinations of logical operations E.g. the adding operation is just a particular combination of logic operations Possibilities for adding two bits 0+0=0 (with no carry) 0+1=1 (with no carry) 1+0=1 (with no carry) 1+1=0 (with a carry) CSC 370 (Blum)

Addition Truth Table INPUT OUTPUT A B Sum A XOR B Carry A AND B 1 1 CSC 370 (Blum)

Multiplication: Shift and add 1  + shift shift CSC 370 (Blum)

Fractions Similar to what we’re used to with decimal numbers 3.14159 = 3 · 100 + 1 · 10-1 + 4 · 10-2 + 1 · 10-3 + 5 · 10-4 + 9 · 10-5 11.001001 = 1 · 21 + 1 · 20 + 0 · 2-1 + 0 · 2-2 + 1 · 2-3 + 0 · 2-4 + 0 · 2-5 + 1 · 2-6 (11.001001  3.140625) CSC 370 (Blum)

Converting decimal to binary II 98.61 Integer part 98 / 2 = 49 remainder 0 49 / 2 = 24 remainder 1 24 / 2 = 12 remainder 0 12 / 2 = 6 remainder 0 6 / 2 = 3 remainder 0 3 / 2 = 1 remainder 1 1 / 2 = 0 remainder 1 1100010 CSC 370 (Blum)

Converting decimal to binary III 98.61 Fractional part 0.61  2 = 1.22 0.22  2 = 0.44 0.44  2 = 0.88 0.88  2 = 1.76 0.76  2 = 1.52 0.52  2 = 1.04 .100111 CSC 370 (Blum)

Another Example (Whole number part) 123.456 Integer part 123 / 2 = 61 remainder 1 61 / 2 = 30 remainder 1 30 / 2 = 15 remainder 0 15 / 2 = 7 remainder 1 7 / 2 = 3 remainder 1 3 / 2 = 1 remainder 1 1 / 2 = 0 remainder 1 1111011 CSC 370 (Blum)

Checking: Go to Programs/Accessories/Calculator CSC 370 (Blum)

Put the calculator in Scientific view CSC 370 (Blum)

Enter number, put into binary mode CSC 370 (Blum)

Another Example (fractional part) 123.456 Fractional part 0.456  2 = 0.912 0.912  2 = 1.824 0.824  2 = 1.648 0.648  2 = 1.296 0.296  2 = 0.592 0.592  2 = 1.184 0.184  2 = 0.368 … .0111010… CSC 370 (Blum)

Checking fractional part: Enter digits found in binary mode Note that the leading zero does not display. CSC 370 (Blum)

Convert to decimal mode, then CSC 370 (Blum)

Divide by 2 raised to the number of digits (in this case 7, including leading zero) CSC 370 (Blum)

In most cases it will not be exact CSC 370 (Blum)

Other way around Multiply fraction by 2 raised to the desired number of digits in the fractional part. For example .456  27 = 58.368 Throw away the fractional part and represent the whole number 58 111010 But note that we specified 7 digits and the result above uses only 6. Therefore we need to put in the leading 0 0111010 CSC 370 (Blum)

Fixed point If one has a set number of bits reserved for representing the whole number part and another set number of bits reserved for representing the fractional part of a number, then one is said to be using fixed point representation. The point dividing whole number from fraction has an unchanging place in the number. CSC 370 (Blum)

Limits of the fixed point approach Suppose you use 4 bits for the whole number part and 4 bits for the fractional part (ignoring sign for now). The largest number would be 1111.1111 = 15.9375 The smallest, non-zero number would be 0000.0001 = .0625 CSC 370 (Blum)

Floating point representation Floating point representation allows one to represent a wider range of numbers using the same number of bits. It is like scientific notation. CSC 370 (Blum)

Scientific notation Used to represent very large and very small numbers Ex. Avogadro’s number  6.0221367  1023 particles  602213670000000000000000 Ex. Fundamental charge e  1.60217733  10-19 C  0.000000000000000000160217733 C CSC 370 (Blum)

Scientific notation: all of these are the same number 12345.6789 = 1234.56789  100 1234.56789  10 = 1234.56789  101 123.456789  100 =123.456789  102 12.3456789  103 1.23456789  104 Rule: Shift the point to the left and increment the power of ten. CSC 370 (Blum)

Small numbers 0.000001234 0.00001234  10-1 0.0001234  10-2 0.001234  10-3 0.01234  10-4 0.1234  10-5 1.234  10-6 Rule: shift point to the right and decrement the power. CSC 370 (Blum)

Floating Point Rules Starting with the fixed point binary representation, shift the point and increase the power (of 2 now that we’re in binary) Shift so that the number has no whole number part and also so that the first fractional bit (the half’s place) has a 1. CSC 370 (Blum)

Floats SHIFT expression so it is just under 1 and keep track of the number of shifts 1100010.1001100110011001 .11000101001100110011001  27 Express the number of shifts in binary .11000101001100110011001  200000111 CSC 370 (Blum)

Mantissa and Exponent and Sign .11000101001100110011001  200000111 (Significand) Mantissa Exponent The number may be negative, so there a bit (the sign bit) reserved to indicate whether the number is positive or negative CSC 370 (Blum)

Small numbers 0.000010101110 0.10101110  2-4 The power (a.k.a. the exponent) could be negative so we have to be able to deal with that. Floating point numbers use a procedure known as biasing to handle the negative exponent problem. CSC 370 (Blum)

Biasing Actually the exponent is not represented as shown on the previous slide There were 8 bits used to represent the exponent on the previous slide, that means there are 256 numbers that could be represented Since the exponent could be negative (to represent numbers less than 1), we choose half of the range to be positive and half to be negative , i.e. -128 to 127 CSC 370 (Blum)

Biasing (Cont.) In biasing, one does not use 2’s complement or a sign bit. Instead one adds a bias (equal to the magnitude of the most negative number) to the exponents and represents the result of that addition. CSC 370 (Blum)

Biasing (Cont.) With 8 bits, the bias is 128. We had to shift 7 times to the left, corresponding to an exponent of +7 We add that to the bias 128+7=135 That is the number we put in the exponent portion: 10000111 CSC 370 (Blum)

Big floats Assume we use 8 bits, 4 for the mantissa and 4 for the exponent (neglecting sign). What is the largest float? Mantissa: 1111 Exponent 1111 0.9375  27 =120 (Compare this to the largest fixed-point number using the same amount of space 15.9375) CSC 370 (Blum)

Small floats Assume we use 8 bits, 4 for the mantissa and 4 for the exponent (neglecting sign). What is the smalles float? Mantissa: 1000 Exponent 0000 0.5  2-8 = 0.001953125 (Compare this to the smallest fixed-point number using the same amount of space .0625) CSC 370 (Blum)

One more fine point As discussed so far, the mantissa (significand) always starts with a 1. When storage was expensive, designers opted not to represent this bit, since it is always 1. It had to be inserted for various operations on the number (adding, multiplying, etc.), but it did not have to be stored. CSC 370 (Blum)

Still another fine point When we assume that the mantissa must start with a 1, we lose 0. Zero is too important a number to lose, so we interpret the mantissa of all zeros and exponent of all zeros as zero Even though ordinarily we would assume the mantissa started with a one that we didn’t store. CSC 370 (Blum)

Yet another fine point In the IEEE 754 format for floats, you bias by one less (127) and reserve the exponents 00000000 and 11111111 for special purposes. One on these special purposes is “Not a number” (NaN) which is the floating point version of overflow. CSC 370 (Blum)